本文へ移動

etcd v2.2.0のベンチマーク

etcd v2.2.0の性能測定

物理マシン

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

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

etcdクラスター

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

バージョンの詳細:

etcd Version: 2.2.0
Git SHA: e4561dd
Go Version: go1.5
Go OS/Arch: linux/amd64

テスト

etcdクラスターの外部に別のマシンを起動し、接続再利用のパッチを適用したhey HTTPベンチマークツール を実行して、各etcdクラスターメンバーにリクエストを送信します。パッチと測定手順の再現方法は、ベンチマークの手順 を参照してください。

性能は100回のベンチマーク結果から算出します。

性能

単一キーの読み取り性能

キーサイズ(バイト) クライアント数 対象のetcdサーバー 平均読み取りQPS 読み取りQPSの標準偏差 90パーセンタイルレイテンシーの平均(ms) レイテンシーの標準偏差
64 1 リーダーのみ 2303 200 0.49 0.06
64 64 リーダーのみ 15048 685 7.60 0.46
64 256 リーダーのみ 14508 434 29.76 1.05
256 1 リーダーのみ 2162 214 0.52 0.06
256 64 リーダーのみ 14789 792 7.69 0.48
256 256 リーダーのみ 14424 512 29.92 1.42
64 64 全サーバー 45752 2048 2.47 0.14
64 256 全サーバー 46592 1273 10.14 0.59
256 64 全サーバー 45332 1847 2.48 0.12
256 256 全サーバー 46485 1340 10.18 0.74

単一キーの書き込み性能

キーサイズ(バイト) クライアント数 対象のetcdサーバー 平均書き込みQPS 書き込みQPSの標準偏差 90パーセンタイルレイテンシーの平均(ms) レイテンシーの標準偏差
64 1 リーダーのみ 55 4 24.51 13.26
64 64 リーダーのみ 2139 125 35.23 3.40
64 256 リーダーのみ 4581 581 70.53 10.22
256 1 リーダーのみ 56 4 22.37 4.33
256 64 リーダーのみ 2052 151 36.83 4.20
256 256 リーダーのみ 4442 560 71.59 10.03
64 64 全サーバー 1625 85 58.51 5.14
64 256 全サーバー 4461 298 89.47 36.48
256 64 全サーバー 1599 94 60.11 6.43
256 256 全サーバー 4315 193 88.98 7.01

性能の変化

  • etcdがAPI呼び出しごとにメトリクスを記録するようになったため、ほとんどのシナリオで読み取りQPSがわずかに低下しているようです。得られる監視・デバッグ情報の広がりを考慮し、この小さな性能への影響は妥当なものと判断しました。

  • クラスターのリーダーに対する書き込みQPSは、わずかに増加しているようです。これは、etcdのraft処理でメインループとエントリー適用ループを分離し、両者の間で発生していたいくつかのブロックを解消したためです。

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