独自のカラムナーDBを構築しようとしております。
独自のカラムナーではカラムごとにファイルが作成されるため、ファイルサイズが大きくなり、
読み書きの性能が重要です。一方でコストもなるべく安く抑えたいため、どのタイプのEBSが
最適であるか、性能評価しております。
性能評価の結果、仕様値よりも高性能なケース、低性能なケースを確認しました。
下記の点について、教えていただけないでしょうか。
★1:スループット最適化HDD(st1)が低性能となる原因、改善策
(カタログスペック値 500MB/s のスループットが欲しい)
★2:マグネティック(standard)をルートボリュームとした場合に
スループット最適化HDD(st1)と同等の高性能となる理由
★3:プロビジョンド IOPS SSD (io1)が低性能となる原因、改善策
(カタログスペック値 1000MB/s のスループットが欲しい)
■性能評価結果
READ(32MB Block シーケンシャルリード)
HDD(st1) ( 追加ボリューム) 364 MB/s ★1 仕様よりも低性能
HDD(sc1) ( 追加ボリューム) 174 MB/s
HDD(standard)( 追加ボリューム) 57 MB/s
HDD(standard)(ルートボリューム) 347 MB/s ★2 仕様よりも高性能
SSD(gp2) (ルートボリューム) 265 MB/s
SSD(io1) ( 追加ボリューム) 364 MB/s ★3 仕様よりも低性能
SSD(io1) (ルートボリューム) 356 MB/s ★3 仕様よりも低性能
WRITE(32MB Block ランダムライト)
HDD(st1) ( 追加ボリューム) 325 MB/s ★1 仕様よりも低性能
HDD(sc1) ( 追加ボリューム) 160 MB/s
HDD(standard)( 追加ボリューム) 54 MB/s
HDD(standard)(ルートボリューム) 345 MB/s ★2 仕様よりも高性能
SSD(gp2) (ルートボリューム) 265 MB/s
SSD(io1) ( 追加ボリューム) 357 MB/s ★3 仕様よりも低性能
SSD(io1) (ルートボリューム) 357 MB/s ★3 仕様よりも低性能
■公式ページに記載された最大スループット
汎用 SSD (gp2) 250 MiB/s
プロビジョンド IOPS SSD (io1) 1,000 MiB/s ★3
スループット最適化 HDD (st1) 500 MiB/s ★1
マグネティック(standard) 40~90 MiB/s ★2
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html#ebs-volume-characteristics
https://aws.amazon.com/jp/ebs/previous-generation/
■性能評価した環境&設定
リージョン:
東京
EC2インスタンスタイプ:
r5a.2xlarge
→8コア、64GBメモリ
→EBS最適化あり
AMI:
Amazon Linux 2 AMI (HVM), SSD Volume Type 64bit(x86)
(Amazon Linux 2 AMI 2.0.20200207.1 x86_64 HVM gp2)
ボリュームサイズ:
全て 1000 GiB
ファイルシステム:
XFS
→ルートボリュームは、インスタンス作成時のまま変更なし
→追加ボリュームは、mkfs -t xfs /dev/xxx でフォーマット。オプションなしでマウント。
ベンチマークツール:
fio
ベンチマーク共通パラメータ:
スレッド数 : 8
ダイレクトIO : true
データサイズ : 70GB
ブロックサイズ: 32MB
テスト時間 : 30秒
下記の投稿も確認したのですが、仕様よりも高性能となる原因ということで新たに投稿させていただきました。
https://forums.aws.amazon.com/thread.jspa?messageID=404960ⷠ
よろしくお願いいたします。
Edited by: shimbara on Mar 27, 2020 2:37 AM