【あいおーぴーえす】

IOPS とは?

最終更新:
💡 1秒に、何回の読み書きを処理するか

1秒あたりの入出力操作回数を表す指標。データ量を表すスループット、応答時間を表すレイテンシとの違いと、比較に必要な測定条件を解説します。

📌 このページのポイント
IOPS:1秒に何回、読み書きする?どちらも1秒に1,000回のI/O4 KiBずつ1,000 × 1回のサイズ4,000 KiB/s約3.91 MiB/s64 KiBずつ1,000 × 1回のサイズ64,000 KiB/s62.5 MiB/s同じ回数でも、運ぶデータ量は違う応答の速さ(遅延)も、回数とは別に見る
各I/Oのサイズが一定だと仮定した計算例です(1 MiB=1,024 KiB)。実際のIOPSは読み書きの種類、同時実行数、計測位置などで変わります。
ひよこ ひよこ
IOPSは、何を数えるの?
ペンギン先生 ペンギン先生
1秒あたりの読み書きなどの入出力操作の回数だ。例えば1秒に1,000回の操作を完了したら、その区間の観測値は1,000 IOPSになる。ファイル数や、利用者の操作回数そのものを数える指標ではないよ。
ひよこ ひよこ
MB毎秒とは、何が違う?
ペンギン先生 ペンギン先生
MB/sやMiB/sは、1秒あたりに運ぶデータの量だ。同じ1,000 IOPSでも、1回が4 KiBなら約3.91 MiB/s、64 KiBなら62.5 MiB/sになる。図は同じ数え方と一定サイズを仮定した計算例で、製品の性能値ではないよ。
ひよこ ひよこ
IOPSが高ければ、応答も速い?
ペンギン先生 ペンギン先生
必ずしもそうではない。多くの仕事を同時に処理して高いIOPSを出していても、個々の応答に時間がかかる場合がある。操作から完了までのレイテンシや、待っている要求の数も一緒に見よう。
ひよこ ひよこ
どんな条件を比べればいい?
ペンギン先生 ペンギン先生
1回のI/Oサイズ、順番に読むかランダムか、読書きの割合、同時に進める数などを合わせる。キャッシュや測る時間、どこで数えるかも関わる。HDDやSSDという種類だけに、共通の固定IOPSを割り当てないことが大切だ。
ひよこ ひよこ
クラウドで設定したIOPSが出ないのは、故障?
ペンギン先生 ペンギン先生
それだけでは判断できない。例えばEBSでは、十分な要求がない場合や、データ量の上限、接続先インスタンスの帯域が先に限界になる場合もある。ボリュームのIOPS上限と、ほかの上限を分けて調べよう。
ひよこ ひよこ
自分で測るには?
ペンギン先生 ペンギン先生
fioなどで仕事の条件を指定して測る方法がある。ただし書込みの試験は対象のデータを変更し得る。専用のテスト領域を用意し、条件と結果を記録して比べよう。カタログ値だけで、実際のアプリの応答を保証することはできないよ。
もっと詳しく知りたい人へ

IOPSは、どこで測っても同じ?

同じとは限りません。例えばEBSは、I/Oの結合や分割を行う場合があり、OS側とボリューム側で数える操作回数が違うことがあります。観測箇所と、1回の操作として数える条件を確認します。

キューを深くすれば、必ず速くなる?

同時に進めるI/Oを増やして性能を使いやすくなる場合はありますが、待ち時間との兼ね合いがあります。fioでも同期・非同期の方式によって設定の効き方が違います。高いIOPSだけでなく、必要な応答時間も満たすかを確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「IOPS」って出てきたら「1秒あたりの入出力操作回数を表す指標」と思えばだいたいOK!
📖 おまけ:英語の意味
「Input/Output Operations Per Second」 = 1秒あたりの入出力操作回数
💬 I/Oは入出力、Operationsは操作、Per Secondは毎秒です。実際に観測した値と、仕様の上限や設定した値を区別します。

参考資料

← 用語集にもどる