ストレージ

IOPSとは?

別名: input/output operations per second
定義

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がより重要です。マーケティングはしばしばシーケンシャル数値を引用します。

ストレージの詳細

NVMe
NVMeは、ソリッドステートドライブをPCIe経由で直接接続するストレージプロトコルであり、約50万ランダムIOPS、サブ100マイクロ秒のレイテンシーに達します。
RAID 10
RAID 10は、ドライブのペア間でデータをミラーリングし、ミラー間でストライピングするため、冗長性と高性能の両方を提供しますが、代償として生の容量の半分を失います。
スナップショット
スナップショットは、仮想マシンディスクの特定時点のコピーであり、即座に取得され、同じインフラストラクチャに保存されます。