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 |