元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2014/06/18

by Marcell Dietl

新しいSSDベースのEBSボリューム(General Purpose)のベンチマークをとった


昨日の Amazon Web Services からの公式発表により、Amazon EBSのボリュームとして、「General Purpose (SSD)」が選択できるようになりました。詳細は、以下のAWS公式ブログにてご確認ください。


で、で、既に今回追加された新しいEBSのボリュームタイプに関しては、以下のエントリでまとめられています。


へー、なるほどねぇ、、、とか思いながら読んでいたのですが、最後のところで、

新型EBSのベンチマークについては、いつもの id:rx7 さんが颯爽ベンチってくれると思うので待ちます。

EC2に全く新しいSSD-Backed EBSがきたぞ! - りむっちスケッチ

とあったので、軽くベンチマークをとって、まとめてみますねw


ベンチマーク方法

今回も、いつもと同様"fio"を使ってベンチマークをとってみます。基本的なやり方は、以下のエントリで紹介した内容とほぼ同じです。


一応、箇条書きしておくと、

  • Tokyoリージョンを利用
  • Amazon Linux AMI 2014.03.1 (Linux version 3.10.35-43.137.amzn1.x86_64) を利用
  • 利用したEC2インスタンスタイプは c3.8xlarge
  • ファイルシステムはxfsを利用
  • 利用したボリュームタイプと容量は、General Purpose (SSD)100GB1000GBの2パターン、あと暗号化オプションを使ったパターン

です。

つまり、以下な感じでボリュームをアタッチさせました。

f:id:rx7:20140618225713p:image:w480


それでは、早速性能まわりをみていきましょうか。


EBS General Purpose (SSD) 100GB x 1

まずは、100GBのSSDボリュームを1つ作って、それに対するベンチマークです。


Benchmark TypeBandwidthIOPS
4k, sequential read20.1MB/s5134
4k, sequential write19.8MB/s5061
4k, randam read12.1MB/s3106
4k, randam write12.1MB/s3109
32m, sequential read118.0MB/s3
32m, sequential write122.0MB/s3

General Purpose (SSD) のタイプに関しては、Base Performanceとして、基本的に容量1GBあたり3IOPSの性能が保障されているので、少なくとも100GBの容量では300IOPSが出るはず。

だけど、最大3000IOPSまでバーストできるようになっていて、その持続時間についてもドキュメントに記載があり、ざっくり言うと約30分間。厳密に計算すると100GBのボリュームであれば約2000秒はバーストが持続する計算となっています。


よって、ブロックサイズ4kのアクセスであれば、上記の通り安定したランダムアクセスについては3000IOPS付近で安定した数字が出ていました。ちなみに、シーケンシャルアクセスについては5000IOPS付近まで出ていた。


EBS General Purpose (SSD) 100GB x 1 => "-runtime=120"(秒)

先ほどのベンチマークは16秒に対するもので、これまでデフォルトで使えたEBSボリュームについても短時間であれば、かなりバーストできた(参考: Amazon EBS の性能ベンチマーク その1 (Standard編) - 元RX-7乗りの適当な日々 )ので、試しに120秒ほどかけてみた。


Benchmark TypeIOPS
4k, sequential read4969
4k, sequential write5256
4k, randam read3066
4k, randam write3066

先ほどの結果と、ほとんど変わらず。

さっき書いたとおりですが、100GBのボリュームであればバースト可能な持続時間が2000秒程度になっているはずなので、この結果は期待通り。


EBS General Purpose (SSD) 1000GB x 1

次は、General Purpose (SSD) タイプの1000GB(1TB)のボリュームを作成してやってみた。


Benchmark TypeBandwidthIOPS
4k, sequential read21.0MB/s5367
4k, sequential write18.3MB/s4675
4k, randam read12.1MB/s3106
4k, randam write12.1MB/s3107
32m, sequential read130.4MB/s4
32m, sequential write105.5MB/s3

結果はこの通りで、数十秒ベンチマークをかける程度であれば、100GBのボリュームと変わらないです。

ですが、こちらはBase Performanceが3000IOPSとなるので、常に3000IOPSの性能が保証された形になります。常に多めのIOアクセスが続くような環境では、黙って1TBのボリュームを作るか、Provisioned IOPS (SSD) のボリュームを作って運用する形になりそうですね。


EBS General Purpose (SSD) 1000GB x 2 (RAID0)

次、General Purpose (SSD) タイプの1000GB(1TB)のボリュームをRAID0(ストライピング)で2本束ねた結果。


Benchmark TypeBandwidthIOPS
4k, sequential read26.0MB/s6660
4k, sequential write25.1MB/s6437
4k, randam read24.2MB/s6199
4k, randam write24.2MB/s6193
32m, sequential read248.1MB/s7
32m, sequential write215.0MB/s6

シーケンシャルアクセスのバーストっぷりが少し小さくはなっていますが、ほぼ仕様通り+αという結果。

RAIDでストライピングする限りは、多少はインスタンスのスペックも影響するでしょうが、まぁ普通にディスクの本数に比例してパフォーマンスが出ると見て良さそうです。


EBS General Purpose (SSD) 100GB x 1 (Encrypt)

最後に"Encrypt this volume"にチェック(暗号化オプション)を入れて作成したボリュームに対してのベンチマーク。


Benchmark TypeBandwidthIOPS
4k, sequential read19.8MB/s5080
4k, sequential write19.6MB/s5013
4k, randam read12.1MB/s3106
4k, randam write12.1MB/s3107
32m, sequential read123.1MB/s3
32m, sequential write94.3MB/s2

こちらも暗号化なしのパターンとそれほど変わらない感じでした。


まとめ

  • 新しい General Purpose (SSD) タイプのEBSボリュームは、MAXで1ボリュームあたり3000IOPSとはなっているが、バースト時間がそこそこ長く使えるので、安定という意味で、旧来のEBS(Magnetic volumes)とProvisioned IOPSの中間的な位置付けかな、と思う。
  • バーストしている時間内でしかベンチマークをとっていないので、何とも言えないところはあるけど、少なくともその時間内では3000IOPSという数字でかなり安定したパフォーマンス・レイテンシが出ていた。(綺麗にキャップされている)
  • 新しい General Purpose (SSD) タイプのEBSボリュームは、旧来のEBS(Magnetic volumes)で設定されていたI/Oリクエストに対する課金がなくなっているのが、何気に1つの特徴ではないだろうか。
    • 旧来は、ボリュームに負荷試験ばりにIOリクエストをめちゃめちゃ投げていると、料金やばかったからね・・・うん。
  • RAIDでストライピングすると、ほぼ本数に比例してIOPSは向上する。(スケールする)
  • 暗号化オプションを利用しても、パフォーマンスはそれほど変わらないと思われる。

と、こんな感じでしょうか。

次回予告(宿題)として、バースティングできるクレジットを使い切ったときにどの程度のパフォーマンスになるかを挙げておきますw

それでは! =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


追記

↑に記載していた内容の追試をエントリに書きました。


あわせて読みたい


Thanks!! 9000000views!!

これからもよろしくお願いします!



まとめ



オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)