つい最近、Amazon AuroraでR4インスタンスが使えるようになりました。
以前、R3インスタンスでデータ暗号化時のパフォーマンスを確認しましたが、同じ条件でmysqlslapを使い、R3インスタンスと性能比較してみます。
※上のほう(新たに加わった16xlargeとか)はさすがに試しません…クライアント側もそれ相応の性能が必要そうですし…。
1. ベンチマークテストの内容
以前と同じ、mysqlslapコマンドを使い、
- 暗号化なし/あり
- バイナリログあり/なし
- インスタンスタイプは db.r3.large/db.r4.large、db.r3.xlarge/db.r4.xlarge
の組み合わせで試してみます。
mysqlslapコマンドのパラメータは前回と同じで、読み書き混在モードで試しています。
$ mysqlslap --auto-generate-sql --auto-generate-sql-guid-primary --engine=innodb --number-int-cols=20 --number-char-cols=20 --concurrency=150 --auto-generate-sql-write-number=2000 --auto-generate-sql-execute-number=2000 --auto-generate-sql-load-type=mixed -u 【ユーザ名】 -h 【クラスタエンドポイント】 -p
2. 結果
単位は秒。3回実行して平均を取りました。
- largeインスタンス
インスタンスタイプ | 暗号化なし・バイナリログなし | 暗号化なし・バイナリログあり | 暗号化あり・バイナリログなし | 暗号化あり・バイナリログあり |
---|---|---|---|---|
db.r3.large | 57.252 | 66.970 | 57.360 | 68.003 |
db.r4.large | 51.293 | 62.091 | 48.860 | 57.737 |
性能UP率 | 11.6% | 7.9% | 17.4% | 17.8% |
- xlargeインスタンス
インスタンスタイプ | 暗号化なし・バイナリログなし | 暗号化なし・バイナリログあり | 暗号化あり・バイナリログなし | 暗号化あり・バイナリログあり |
---|---|---|---|---|
db.r3.xlarge | 35.226 | 39.076 | 34.680 | 40.271 |
db.r4.xlarge | 32.046 | 35.797 | 33.133 | 37.857 |
性能UP率 | 9.9% | 9.2% | 4.7% | 6.4% |
3. 考察(というほどのものでもない)
程度の差はありますが、R4インスタンスはR3インスタンス比で性能向上していました。
但し、暗号化の有無については、以前試したR3もR4も、誤差の範囲でしかありませんでした。
前回同様、「あり」のときの性能が「なし」を上回るケースもありましたが、db.r4.largeでは前回のR3とは違って、バイナリログがあっても「あり」が「なし」を上回りました。
インスタンスが割り当てられたホストや、利用しているストレージの負荷状況が影響したのかもしれません。
結果として、暗号化の有無と性能のUP率がlargeインスタンスとxlargeインスタンスで逆転していますが、これは偶然の可能性が高いと思います(3回繰り返した結果のばらつきはいずれも小さかった)。
また、今回のR3インスタンスとR4インスタンスの結果の差を考えると、割り当てられるホストやストレージによっては結果が逆転する可能性もあります。
2018/01/08追記:
2018/01/08になって、もう一度試してみたら…。
【おまけ】
Amazon Aurora関連投稿記事へのリンクを集めました。