本文へ移動

etcd v2.2.0-rcのベンチマーク

etcd v2.2.0-rcの性能測定

物理マシン

GCEのn1-highcpu-2マシンタイプ

  • /var/lib/etcdにマウントした専用ローカルSSD:1台
  • OS用の専用低速ディスク:1台
  • メモリー:1.8 GB
  • CPU:2基

etcdクラスター

etcd 2.2.0-rcメンバー3つを、それぞれ別のマシンで実行します。

バージョンの詳細:

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

比較の基準となる性能を測るため、alpha段階のetcd 2.1.0メンバー3つでもクラスターを構成します。etcdのコミットはc7146bd5 で、etcd 2.1のベンチマーク で使用したものと同じです。

テスト

別のマシンを起動し、hey HTTPベンチマークツール を使って各etcdメンバーにリクエストを送信します。詳しい手順はベンチマーク開発ガイド を参照してください。

性能

単一キーの読み取り

キーサイズ(バイト) クライアント数 対象のetcdサーバー 読み取りQPS 90パーセンタイルレイテンシー(ms)
64 1 リーダーのみ 2804 (-5%) 0.4 (+0%)
64 64 リーダーのみ 17816 (+0%) 5.7 (-6%)
64 256 リーダーのみ 18667 (-6%) 20.4 (+2%)
256 1 リーダーのみ 2181 (-15%) 0.5 (+25%)
256 64 リーダーのみ 17435 (-7%) 6.0 (+9%)
256 256 リーダーのみ 18180 (-8%) 21.3 (+3%)
64 64 全サーバー 46965 (-4%) 2.1 (+0%)
64 256 全サーバー 55286 (-6%) 7.4 (+6%)
256 64 全サーバー 46603 (-6%) 2.1 (+5%)
256 256 全サーバー 55291 (-6%) 7.3 (+4%)

単一キーの書き込み

キーサイズ(バイト) クライアント数 対象のetcdサーバー 書き込みQPS 90パーセンタイルレイテンシー(ms)
64 1 リーダーのみ 76 (+22%) 19.4 (-15%)
64 64 リーダーのみ 2461 (+45%) 31.8 (-32%)
64 256 リーダーのみ 4275 (+1%) 69.6 (-10%)
256 1 リーダーのみ 64 (+20%) 16.7 (-30%)
256 64 リーダーのみ 2385 (+30%) 31.5 (-19%)
256 256 リーダーのみ 4353 (-3%) 74.0 (+9%)
64 64 全サーバー 2005 (+81%) 49.8 (-55%)
64 256 全サーバー 4868 (+35%) 81.5 (-40%)
256 64 全サーバー 1925 (+72%) 47.7 (-59%)
256 256 全サーバー 4975 (+36%) 70.3 (-36%)

性能変化の説明

  • ほとんどのシナリオで、読み取りQPSが5~8%低下しています。これは、etcdがストア操作ごとにストアのメトリクスを記録するためです。メトリクスは監視やデバッグに重要なため、この低下は許容できると考えています。

  • リーダーに対する書き込みQPSが20~30%増加しています。raftのメインループとエントリー適用ループを分離し、互いの処理をブロックしないようにしたためです。

  • 全サーバーに対する書き込みQPSが30~80%増加しています。フォロワーが最新のコミットインデックスをより早く受信し、提案をより速くコミットできるようになったためです。