4,000IOPS EBSのベンチをとってみた
今日、Amazon Web Services Blog: Provision Up to 4,000 IOPS per EBS Volume, New Marketplace Supportで発表があったとおり、EBSで設定できるIOPSが4,000IOPSまで、Disk容量も1TBまで使えるようになりました。
今までは、2,000IOPSが最大値でしたが、2倍のIOPSまで使えるようになりました。
そこで、簡単ですが、通常のEBS・2,000IOPS EBS・4,000IOPS EBSでベンチを取ってみました。
実際に使用したベンチマークは後でまとめたいと思いますが、とあるサービスの本番データを使ったMySQLのベンチマークでは2,000IOPS EBSよりも良い結果になりましたが、1.5倍程度の向上に落ち着いていました。あくまで、参考ということで。
また、
Amazon EBS の性能ベンチマーク その1 (Standard編) - 元RX-7乗りの適当な日々
こちらのシリーズでEBSの詳細なベンチマーク結果が掲載されています。
今回は
m2.4xlarge (EBS Optimized Instance)を使用しました。
ファイルシステムは ext4
fioでDIRECTIOをONにして測定しました
fioのパラメータは先程のエントリと同じ物を使用し
bs=4k size=5G numjobs=64 runtime=16 と bs=32MB size=5G numjobs=8 runtime=16
で測定しました。
結果
- IOPS
Normal | 2,000 | 4,000 | |
---|---|---|---|
sequential read | 16,500 | 3,792 | 7,476 |
sequential write | 1,202 | 2,065 | 1,953 |
random read | 1,149 | 2,050 | 4,177 |
random write | 1,097 | 2,069 | 1,885 |
- Bandwidth(MB/sec)
Normal | 2,000 | 4,000 | |
---|---|---|---|
sequential read | 70 | 42.2 | 66 |
sequential write | 44.5 | 42.1 | 65.9 |
sequential readはノーマルEBSが圧倒的なIOPS性能を出していました。実際のDisk前にキャッシュがあると思います。しかし、その他のベンチマークでは、Provisioned IOPS EBSが良い結果となりました。
スタンダードEBSでは結果のぶれ幅が大きくあまりIOPS、帯域ともに安定しにくかったのですが、Provisioned IOPS EBSにおいては安定した結果を毎回出していました。
Provisioned IOPS EBSの場合、設定値を少し飛び出る程度まではバーストしますが、ほとんど設定値までしかでません。
スタンダードEBSの説明として
基準点として、スタンダードEBSボリューム(従来のEBSボリューム)は一般的に平均約100 IOPS程度の 性能で、ベストエフォート方式で数百IOPSまでバーストする能力をもっています。 スタンダードEBSボリュームは中程度またはバーストすることのあるI/O要求がある、 ブートボリュームに最適です。
と書かれている通り、普段使用していても、バーストが起こる場面が多く。700IOPSを超えている場面も多いです。
Provisioned IOPS EBSだから一重に性能がいいと使うのではなく、用途によっては通常EBSのほうが性能が出るというのを頭の片隅に入れてパフォーマンステストを行い、使用するのがいいと思います。
また、重要なポイントとして、スタンダードEBSはベストエフォートでバーストしますが、性能のブレが大きいというところです。Provisioned IOPS EBSはピーク性能が安定して期待値を出してくれますが、スタンダードEBSほどのバーストは起こりません。
その他のProvisioned IOPS EBSの利点として、パフォーマンスの他にIOでの課金がないため、IOが大量に発生する環境で、パフォーマンスをそこまで要求しないような場合IOPSを低めに設定したProvisioned IOPS EBSを使うことで、少しコストが安くなるかもしれません。Provisioned IOPS EBSはGB単価もIOPSでの上乗せもあるので稀な場合だとは思いますが。
その他の詳細なベンチマークなどは後日掲載したいと思います。
続き 今一度Provisoed IOPS EBSのベンチをとってみた - まめ畑