Zum Inhalt springen

Benchmarks für etcd v2.2.0-rc

Leistungsmessungen für etcd v2.2.0-rc

Physischer Rechner

GCE-Rechnertyp n1-highcpu-2

  • 1x dedizierte lokale SSD, unter /var/lib/etcd eingebunden
  • 1x dedizierter langsamer Datenträger für das Betriebssystem
  • 1.8 GB Arbeitsspeicher
  • 2x CPUs

etcd-Cluster

3 Mitglieder mit etcd 2.2.0-rc, jeweils auf einem eigenen Rechner.

Versionsdetails:

etcd Version: 2.2.0-alpha.1+git
Git SHA: 59a5a7e
Go Version: go1.4.2
Go OS/Arch: linux/amd64

Außerdem bilden wir aus 3 Mitgliedern mit etcd 2.1.0 im Alpha-Stadium einen Cluster, um die Ausgangsleistung zu ermitteln. Der verwendete etcd-Commit ist c7146bd5 , derselbe wie im etcd-2.1-Benchmark .

Testverfahren

Einen weiteren Rechner einrichten und mit dem HTTP-Benchmarkwerkzeug hey Anfragen an jedes etcd-Mitglied senden. Eine ausführliche Anleitung enthält der Leitfaden zur Benchmark-Entwicklung .

Leistung

Einen einzelnen Schlüssel lesen

Schlüsselgröße in Bytes Anzahl der Clients etcd-Zielserver Lese-QPS 90. Latenzperzentil (ms)
64 1 nur Leader 2804 (-5%) 0.4 (+0%)
64 64 nur Leader 17816 (+0%) 5.7 (-6%)
64 256 nur Leader 18667 (-6%) 20.4 (+2%)
256 1 nur Leader 2181 (-15%) 0.5 (+25%)
256 64 nur Leader 17435 (-7%) 6.0 (+9%)
256 256 nur Leader 18180 (-8%) 21.3 (+3%)
64 64 alle Server 46965 (-4%) 2.1 (+0%)
64 256 alle Server 55286 (-6%) 7.4 (+6%)
256 64 alle Server 46603 (-6%) 2.1 (+5%)
256 256 alle Server 55291 (-6%) 7.3 (+4%)

Einen einzelnen Schlüssel schreiben

Schlüsselgröße in Bytes Anzahl der Clients etcd-Zielserver Schreib-QPS 90. Latenzperzentil (ms)
64 1 nur Leader 76 (+22%) 19.4 (-15%)
64 64 nur Leader 2461 (+45%) 31.8 (-32%)
64 256 nur Leader 4275 (+1%) 69.6 (-10%)
256 1 nur Leader 64 (+20%) 16.7 (-30%)
256 64 nur Leader 2385 (+30%) 31.5 (-19%)
256 256 nur Leader 4353 (-3%) 74.0 (+9%)
64 64 alle Server 2005 (+81%) 49.8 (-55%)
64 256 alle Server 4868 (+35%) 81.5 (-40%)
256 64 alle Server 1925 (+72%) 47.7 (-59%)
256 256 alle Server 4975 (+36%) 70.3 (-36%)

Erklärung der Leistungsänderungen

  • Die Lese-QPS sinken in den meisten Szenarien um 5~8%. Der Grund ist, dass etcd für jede Speicheroperation Speichermetriken erfasst. Diese sind für Überwachung und Fehlersuche wichtig, weshalb der Rückgang vertretbar ist.

  • Die Schreib-QPS an den Leader steigen um 20~30%. Dies liegt daran, dass wir die Raft-Hauptschleife von der Schleife zum Anwenden der Einträge entkoppeln, sodass sie sich nicht gegenseitig blockieren.

  • Die Schreib-QPS an alle Server steigen um 30~80%, weil Follower den neuesten Commit-Index früher erhalten und Vorschläge schneller festschreiben können.