Physical machine

GCE n1-standard-2 machine type

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

etcd

  1. etcd Version: 2.2.0-rc.0+git
  2. Git SHA: 103cb5c
  3. Go Version: go1.5
  4. Go OS/Arch: linux/amd64

Testing

Start 3-member etcd cluster, each of which uses 2 cores.

The length of key name is always 64 bytes, which is a reasonable length of average key bytes.

Memory Maximal Usage

  • etcd may use maximal memory if one follower is dead and the leader keeps sending snapshots.
  • max RSS is the maximal memory usage recorded in 3 runs.
    value byteskey numberdata size(MB)max RSS(MB)max RSS/data rate on leader
    12850000643372x
    1281000001265954x
    12820000024146661x
    10245000048125326x
    102410000096234424x
    1024200000192436122x

Data Size Threshold

  • When etcd reaches data size threshold, it may trigger leader election easily and drop part of proposals.
  • For most cases, the etcd cluster should work smoothly if it doesn’t hit the threshold. If it doesn’t work well due to insufficient resources, decrease its data size.
    value byteskey number limitationsuggested data size threshold(MB)consumed RSS(MB)
    128400K482400
    1024300K2926500