# etcd v2.2.0のベンチマーク

> etcd v2.2.0の性能測定

---

LLMSインデックス: [llms.txt](/ja/llms.txt)

---

## 物理マシン {#physical-machines}

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

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

## etcdクラスター {#etcd-cluster}

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

バージョンの詳細：

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

## テスト {#testing}

etcdクラスターの外部に別のマシンを起動し、接続再利用のパッチを適用した[`hey` HTTPベンチマークツール](https://github.com/rakyll/hey)を実行して、各etcdクラスターメンバーにリクエストを送信します。パッチと測定手順の再現方法は、[ベンチマークの手順](https://github.com/etcd-io/etcd/tree/v2.3.8/hack/benchmark)を参照してください。

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

## 性能 {#performance}

### 単一キーの読み取り性能 {#single-key-read-performance}

| キーサイズ（バイト） | クライアント数 | 対象の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 |

### 単一キーの書き込み性能 {#single-key-write-performance}

| キーサイズ（バイト） | クライアント数 | 対象の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 |

## 性能の変化 {#performance-changes}

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

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

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