Amazon Auroraのベンチマークを測定してみました。
ベンチマーク環境
ベンチマークの種類
RDBMSのベンチマークで一般的なTPCのオンライントランザクション処理の指標である「TPC-C」を行います。
ベンチマーク用ツールはMySQLのOracle ACEである平塚氏が作成したJdbcRunnerのTPC-C簡易実装であるTiny TPC-Cを使用します。
使用データ
| Table | Record |
| customer | 480000 |
| district | 160 |
| item | 100000 |
| new_orders | 144000 |
| order_line | 4799437 |
| orders | 480000 |
| stock | 1600000 |
| warehouse | 16 |
RDSは以下の状態で行いました。
| インスタンスクラス | DB Engine version | 備考 |
| db.r3.xlarge | Aurora 5.6.10a | Engineのバージョンは明示的には指定不可 |
RDSと測定用クライアント(r3.xlarge)は別AZに配置。
結果
| 多重度 | Throughput(tps) | Response time (90%tile) | ||||||||
| New-Order | Payment | Order-Status | Delivery | Stock-Level | New-Order | Payment | Order-Status | Delivery | Stock-Level | |
| 1 | 9.9 | 9.9 | 1.0 | 1.0 | 1.0 | 93.20 | 20 | 10 | 113 | 7 |
| 4 | 37.9 | 37.9 | 3.8 | 3.8 | 3.8 | 95 | 22 | 10 | 116 | 8 |
| 16 | 129.2 | 129.2 | 12.9 | 12.9 | 12.9 | 107 | 32 | 12 | 131 | 9 |
| 32 | 198.3 | 198.3 | 19.8 | 19.8 | 19.8 | 133 | 66 | 14 | 163 | 13 |
| 多重度 | CPU使用率 | DiskQueueDepth(Count) |
| 1 | 10% | 9 |
| 4 | 30% | 16 |
| 16 | 80% | 13 |
| 32 | 92% | 25 |
まとめ
多重度1でquery_cache_typeを変更して測定してみましたが、on/offの差は見られませんでした。
また、RDSと測定用クライアントを同一AZに配置した場合に比べて、3割程度の性能劣化が見られました。
以下は、測定用クライアントとRDSが同一AZにあった場合の結果になります。
| 多重度 | Throughput(tps) | Response time (90%tile) | ||||||||
| New-Order | Payment | Order-Status | Delivery | Stock-Level | New-Order | Payment | Order-Status | Delivery | Stock-Level | |
| 16 | 195.5 | 195.6 | 19.6 | 19.6 | 19.6 | 67 | 27 | 7 | 91 | 9 |