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クラスターの外部に別のマシンを起動し、接続再利用のパッチを適用した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は、大幅に増加しているようです。フォロワーが最新のコミットインデックスをより早く受信し、提案をより速くコミットできるようになったためです。