ストレージ
IOPSとは?
IOPS measures how many individual read or write operations a storage device completes per second. Random 4K IOPS at a queue depth of one is the number that predicts database behaviour; sequential throughput is the number that appears in marketing.
IOPSが重要な理由
キューの深さが1のときのランダム4K IOPSは、データベースの動作を予測する数値です。シーケンシャルスループットはマーケティングに登場する数値です。
実践でのIOPS
実際にサーバーを運用すると、クエリが遅くなったときにIOPSを監視します。データベースのランダム4K読み取り遅延を確認し、ディスクがボトルネックかどうかを判断します。もしそうなら、NVMeに移行するか、ドライブを追加します。無視すると、負荷がかかったときにアプリケーションが遅くなり、遅いクエリごとにユーザーを失います。ストレージ構成を変更することはできますが、即時ではありません:ティアを下げるにはリビルドが必要で、追加のNVMeは2番目のブロックデバイスとして接続されます。間違えると、サーバーはテストでは速く感じられますが、本番環境で失敗します。
IOPSについて人々が誤解していること
誤解は、IOPSが固定の数値だということです。そうではありません。IOPSはキューの深さとブロックサイズに依存します。ドライブは高いキューの深さで高いIOPSを主張できますが、データベースにとって重要なのは、キューの深さ1のランダム4Kです。修正:マーケティング数値でストレージを比較すると、間違ったデバイスを選ぶことになります。キューの深さ1の数値を見てください。
IOPS — よくある質問
IOPSテストにはどのキューの深さを使うべきですか?
データベースワークロードには、キューの深さ1を使用してください。それが実際の挙動を予測する数値です。ほとんどのOLTPクエリは単一の独立した読み取りを発行するからです。より高いキューの深さはIOPS数値を膨らませることができますが、データベースが実際にディスクにアクセスする方法を反映しません。
IOPSはスループットとどう違いますか?
IOPSは1秒あたりの個々の操作を数え、スループットは1秒あたりのバイト数を測定します。バックアップのようなシーケンシャル転送は高いスループットを達成するかもしれませんが、IOPSは低く、データベースは多数の小さなランダム読み取りを行うため、IOPSがより重要です。マーケティングはしばしばシーケンシャル数値を引用します。
IOPSが登場する箇所
- NVMeはSATA SSDよりどれくらい速いですか? ランダムIOPSは約5倍(約50万対9万)、レイテンシも約5分の1(0.1ms未満対約0.5ms)です。シーケンシャルスループットは6〜10倍です。データベース駆動アプリケーションでは、ランダムIOPSの差が実感されるものです。…
- VPSにおけるNVMe vs SSD vs HDD NVMeはランダムIOPS約500,000、レイテンシ100マイクロ秒未満を達成します。SATA SSDは約90,000 IOPS、7,200 RPM HDDは約150 IOPSです。データベースを扱う場合、この差は高速なアプリケーションと低速なアプリケーションの違いです。HDDが合理的なのは1つだけです。テ…
- VPSのベンチマークはどう行えばよいですか? 実際に変動する3つの要素を測定してください。sysbenchによるシングルスレッドCPU、4Kランダム読み書きfioによるディスク、既知のエンドポイントへのiperf3によるネットワークです。それぞれ複数回、異なる時間帯に実行してください。1回のベンチマークが示すのはその1分間であり、サーバー全体ではありませ…