Benchmarking etcd v2.2.0-rc

    GCE n1-highcpu-2 machine type

    • 1x dedicated local SSD mounted under /var/lib/etcd
    • 1x dedicated slow disk for the OS
    • 2x CPUs

    3 etcd 2.2.0-rc members, each runs on a single machine.

    Also, we use 3 etcd 2.1.0 alpha-stage members to form cluster to get base performance. etcd’s commit head is at , which is the same as the one that we use in etcd 2.1 benchmark.

    Bootstrap another machine and use the to send requests to each etcd member. Check the benchmark hacking guide for detailed instructions.

    key size in bytesnumber of clientstarget etcd serverwrite QPS90th Percentile Latency (ms)
    641leader only76 (+22%)19.4 (-15%)
    6464leader only2461 (+45%)31.8 (-32%)
    64256leader only4275 (+1%)69.6 (-10%)
    2561leader only64 (+20%)16.7 (-30%)
    25664leader only2385 (+30%)31.5 (-19%)
    256256leader only4353 (-3%)74.0 (+9%)
    6464all servers2005 (+81%)49.8 (-55%)
    64256all servers4868 (+35%)81.5 (-40%)
    25664all servers1925 (+72%)47.7 (-59%)
    256256all servers4975 (+36%)70.3 (-36%)
    • write QPS to leader is increased by 20~30%. This is because we decouple raft main loop and entry apply loop, which avoids them blocking each other.

    • write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster.