俺メモ'bout storage by @hasegaw 'n @yoheia
@yoheia @noppymagus よくメーカーやショップが出しているIOPSは大量のリクエストを投げた時に1秒間でどれだけのI/Oが処理できるかという指標です。ご指摘の通り実際にかけるI/Oの量がどれだけ応答時間に影響を与えるかは情報として一切読み取れない指標です。
2016-09-15 20:52:04@yoheia @noppymagus ハードディスクの場合ディスクが回転しているのでランダムI/Oだと時間あたり目的のセクタにアクセスするチャンスは秒間数百回しかありませんでした。なのでハードディスクの応答時間のばらつきはディスクの回転速度とIO回数に相関があると言えるでしょう
2016-09-15 20:55:28@hasegaw @noppymagus スループットの話で、レスポンス(レイテンシ)は保証されないということですね。確かにデバイス一本あたりの IOPS * デバイス数を書いてるだけですよね。
2016-09-15 20:56:17@yoheia @noppymagus 磁気回転メディアならシーク時間が支配的でしたが、SSDの場合は乱暴に言えば、マイコンがFlashにリード、ライト命令を出してI/Oを終えた瞬間に返事が帰ってくるので、中のマイコンやメモリが時間あたりどれだけ捌けるかがIOPSになります
2016-09-15 21:00:21@hasegaw @noppymagus SANストレージもキャッシュがあるので、Write は速くて、read もキャッシュヒットした場合は速かったり、ワークロードでキャッシュされるデータも変わってきて、複雑ですね
2016-09-15 21:04:45@hasegaw 全デバイスに綺麗に分散してI/Oするわけではなく、例えばREDOログの書込みのように特定のデバイスに偏ったりもしますしね
2016-09-15 21:27:42@yoheia @noppymagus そうですね。で、SSDの場合、10000IOPSのスペックで10000IOPS使う = マイコンとFlashがワークロード飽和でしており負荷100状態。100IOPSだけ使うなら負荷1%なので、より短い遅延時間で結果が帰ってきたりしますね
2016-09-15 21:03:29@yoheia @noppymagus IO数が多ければひとつひとつのIOのという視点では応答性能は劣化します。ユーザ側のニーズとして必ずしもSSDの最大IOPS性能を消費しきる必要はないし、余裕があれば応答がより速いのはSSDもHDDも同じです
2016-09-15 21:09:15Oracle Database の ASM は綺麗に分散配置するので、Exadata のストレージサーバの iostat 見たときに美しく並列I/O していて感動した。S.A.M.E のコンセプトが実現されていた。詳しくはしばちょうさんのセミナー資料で。
2016-09-15 21:31:57@hasegaw @noppymagus 昔、長谷川さんに資料開いて説明聞いた気がしますが、公開されてないですよね。Slideshare を見る限り。
2016-09-15 23:08:07