More Related Content
Similar to JAWS-UG北陸第5回勉強会 クラウド破産しないためのEBS入門 (20)
More from Kazuki Ueki (20)
JAWS-UG北陸第5回勉強会 クラウド破産しないためのEBS入門
- 4. AWS歴
約70日
前回(2月2日)第4回JAWS北陸の
ハンズオンがほぼ初めて
(仕事はクラウドと全く無関係です)
- 5. 好きなAWSサービス
SQS
(Simple Queue Service)
シンプルだけど自在なサービス連携
地味で裏方的な感じがイイ
- 6. 得意な技術
方眼紙エクセル
見積書から手順書まで全部エクセル♡
- 8. はじまり
2月のある日
AWSについて調べものをしていると
「クラウド破産」
という穏やかでない単語に出会う
- 18. I/O request数とは?
IOPSとは?
IOPS
【Input/Output Per Second】
ハードディスクなどの記憶装置の性能指標の一つで、ある条件の元で1秒間に読み
込み・書き込みできる回数のこと。
1回の読み書きにかかる時間の逆数で、ハードディスクの場合はシークタイムと回
転待ち時間、データ転送時間の和の逆数となる。実際には、読み込み(リード)か書
き込み(ライト)か、シーケンシャルアクセスかランダムアクセスか、転送するデー
タの量がどれくらいかによって1回の動作に要する時間が異なるため、
「4KBランダムライトIOPS」(4KBのデータをランダムに書き込んだ時のIOPS)の
ように計測条件を明示することが多い。
e-Wordsより http://e-words.jp/w/IOPS.html
- 22. 比較した内容
●
ベンチマークツールのIOPS x 60秒
ブロックサイズ:
4、8、16、32、64、128、256、
512KB、1MBの9種類
読み書き割合:
100%読み取り
100%書き込みの2種類
多重度:1
計測時間:60秒
●
CloudWatchのAWS/EBS
VolumeReadOps/VolumeWriteOpsの時間合計
●
vmstat -dの「成功した読み込み/書き込みの総
数」の時間増加量
- 24. 準備
●
Vagrant 1.1 + AWSプラグインでEC2イン
スタンス起動
●
Berkshelfで必要パッケージ導入
●
aws-cli でEBS Volume作成し、EC2インス
タンスにアサイン
●
Volumeをext4でフォーマット
●
EC2でVolumeマウント
●
fio-2.0.14 をconfigure; make && make
install
●
fioベンチ実行 + 裏でvmstat実行
●
AWS SDK for rubyでCloudWatchから値
を取得してCSV出力
●
Excelで集計!!
- 25. 結果 単位:IOPS
ブロック Read Write
サイズ
fio vmstat Cloud fio vmstat Cloud
Watch Watch
4KB 101 101 101 273 274 274
8KB 91 92 92 229 230 230
16KB 99 100 100 258 259 259
32KB 89 90 90 242 243 243
64KB 47 96 48 225 452 226
128KB 75 227 152 173 520 347
256KB 71 430 215 86 517 259
512KB 54 658 329 48 587 294
1MB 40 967 564 32 792 462
- 26. (fioのIOPSを1とした場合)
ブロック Read Write
サイズ
fio vmstat Cloud fio vmstat Cloud
Watch Watch
4KB 1 1 1 1 1 1
8KB 1 1 1 1 1 1
16KB 1 1 1 1 1 1
32KB 1 1 1 1 1 1
64KB 1 2 1 1 2 1
128KB 1 3 2 1 3 2
256KB 1 6 3 1 6 3
512KB 1 12 6 1 12 6
1MB 1 24 14 1 25 14
- 28. つまり、こういうこと?
データブロック
256KB 16KB
fio
アプリケーション EBS
ストレージプール
OS vmstat
③
85KB
②
85KB
①
85KB CloudWatch
I/Oリクエスト計測
16KB
積載量 最大85KB
- 31. 検証してみた
100PIOPSのEBSに対して先ほどと同じ試験
を実施する
●
ベンチマークツールのIOPS x 60秒
ブロックサイズ:
4、8、16、32、64、128、256、
512KB、1MBの9種類
読み書き割合:
100%読み取り
100%書き込みの2種類
多重度:1
計測時間:60秒
●
CloudWatchのAWS/EBS VolumeReadOps/VolumeWriteOpsの時
間合計
●
vmstat -dの「成功した読み込み/書き込みの総数」の時間増加量
- 32. ついでにこれについても確認してみ
る
「Provisioned IOPS ボリュームはアプリ
ケーションの読み込み、書き込みを16KBか
それ以下のI/Oブロックサイズで処理しま
す。16KB以上にI/Oサイズを増やすと、同
じIOPSの速度を達成するために必要なリ
ソースが線形に増加します。」
http://aws.typepad.com/aws_japan/2012/11/ebs-volume-status-checks.html
⇒ ブロックサイズが16KBより大きくなると
アプリのI/O数と差が出てくるはず
- 33. 結果 単位:IOPS
ブロックサイ
ズ
Read Write
fio vmstat Cloud fio vmstat Cloud
Watch Watch
4KB 102 102 102 101 102 102
8KB 102 102 102 101 102 102
16KB 102 102 102 101 102 102
32KB 102 102 102 101 102 102
64KB 101 203 102 101 204 102
128KB 50 152 101 50 153 102
256KB 33 200 100 33 204 102
512KB 16 204 102 16 204 102
1MB 7 176 102 7 175 102
- 35. ともあれ結論:
Provisioned IOPSの特徴
●
Provisioned IOPSボリュームはIOPSが指定
値に制限される
※スタンダードは数百IOPSまでバースト可能
●
PIOPSもスタンダートと同じく64〜85KBく
らいで処理しているようにみえる(?)
- 36. EBSの(超概算)I/O見積方法
●
ブロックサイズが64KBまで
⇒ I/Oリクエスト数 = アプリI/O回数
●
ブロックサイズが64KB以上
⇒ I/Oリクエスト数 =
ブロックサイズ/64KB x アプリI/O数
●
100IOPS以下の(バーストしない)I/Oが定
常的に発生する場合は
Provisioned IOPSを検討する
- 41. 5日で25万円ってどんだけ?
30日で140
万円なので
5日で20万
ちょっと
20個!のスタンダードボリュームを
それぞれ2000 IOPS!!でぶんまわす
http://calculator.s3.amazonaws.com/calc5.html?lng=ja_JP