GitXplorerGitXplorer
d

etcd-test

public
0 stars
1 forks
0 issues

Commits

List of commits on branch master.
Unverified
14cf44e0cf7c9f39a087619b24562f13c8ecc7ce

Merge pull request #11 from derekwaynecarr/scripts

dderekwaynecarr committed 10 years ago
Unverified
4a86e1dafd95a6ee06bb46c0ef52f19fbe492afd

Fix links

dderekwaynecarr committed 10 years ago
Unverified
1b61a5b8b5c72baede24c09131d6084966deb5c9

Merge pull request #10 from derekwaynecarr/scripts

dderekwaynecarr committed 10 years ago
Unverified
3ed535e0b5879cced7c2fc0d4b0c152adf3350bd

Raw links

dderekwaynecarr committed 10 years ago
Unverified
c162b5dc27d462f528065c9fca72286034c6973b

Merge pull request #9 from derekwaynecarr/scripts

dderekwaynecarr committed 10 years ago
Unverified
896af001de9f852ef15b60bc0339da29ad1da67f

Final message

dderekwaynecarr committed 10 years ago

README

The README file for this repository.

Etcd-Test Scenarios

Background

This is a set of suites used to evaluate etcd at large scales of nodes.

Key Take-aways

At large numbers of nodes, etcd appears to scale close to a 13 : 1 memory to snapshot disk usage ratio independent of key value size.

Start-up time is pretty good even at large numbers of nodes, and seems to scale more with node size than data size.

Garbage collection in Go needs to be better analyzed, obvious plateaus at select 10k intervals in etcd where its obvious garbage collection ocurred. Either way, at process restart, it did not appear that memory usage was related to garbage.

It's possible binary storage in etcd could help, but it appears that it could only help us get closer to the measured 13:1 possible ideal ratio.

There was no significant change in performance between etcd 0.5 and prior versions except write speed was observed as slower in latest code presumably due to more accurate use of write-ahead logs.

View results

Scenario Results
200k nodes in a directory Results
200k nodes in a directory with 0 byte values Results
200k directories each with a single node Results
1 million projects in origin with 1 deployment Results

Scenario: Large numbers of nodes in a single directory

This scenario creates a large number of nodes in a single directory and captures the memory usage of the process.

Start etcd with defaults:

$ rm -fr default.etcd
$ etcd

Run the script:

$ export MEM_INTERVAL=10000
$ export STATS_LABEL=nodes-in-dir-200k
$ export TOTAL_NODES=200000
$ ./populate-nodes-in-dir.sh

This will populate 200k nodes in a single etcd directory and capture memory usage of process after each 10k nodes.

To view the stats and snapshots, look here:

$ cd stats/$STATS_LABEL/
$ ll -a
$ cat etcd.200000.memory
$ cat etcd.200000.snapshot

Scenario: Large numbers of directories each with a single node

This scenario creates a large number of directories, where each directory has a single node.

Start etcd with defaults:

$ rm -fr default.etcd
$ etcd

Run the script:

$ export MEM_INTERVAL=10000
$ export STATS_LABEL=nodes-span-dir-200k
$ export TOTAL_NODES=200000
$ ./populate-nodes-span-dir.sh

This will populate 200k directory nodes where each node has a single value node.

To view the stats and snapshots, look here:

$ cd stats/$STATS_LABEL/
$ ll -a
$ cat etcd.200000.memory
$ cat etcd.200000.snapshot

Scenario: Origin scenario

This scenario simulates operating Origin style use cases at largest scales.

It creates N projects that are all rooted under a common parent directory.

For each project, it creates a single deploymentConfig that is each rooted under its own parent directory.

As a result, this test blends the two prior scenarios, and simulates a small subset of planned Origin resources.

Intended to inform decision making on etcd at largest scales.

Start etcd with defaults:

$ rm -fr default.etcd
$ etcd

Run the script:

$ export MEM_INTERVAL=10000
$ export STATS_LABEL=origin-1mill
$ export TOTAL_PROJECTS=1000000
$ ./populate-origin.sh

This will populate 200k projects and deployment configs.

To view the stats and snapshots, look here:

$ cd stats/$STATS_LABEL/
$ ll -a
$ cat etcd.200000.memory
$ cat etcd.200000.snapshot