IOPS(アイオップス)とは | 意味や読み方など丁寧でわかりやすい用語解説

IOPS(アイオップス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

アイオップス (アイオップス)

英語表記

IOPS (アイオップス)

用語解説

IOPSはInput/Output Per Secondの略称であり、ストレージの性能を評価するための重要な指標の一つである。具体的には、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)といった記憶装置が、1秒間に何回のデータの読み込み(Input)および書き込み(Output)処理、すなわちI/O処理を実行できるかを示す数値だ。この値が高いほど、短時間で多くのI/O要求を処理できる高性能なストレージであると判断できる。特に、データベースサーバーや仮想化基盤のように、多数のユーザーやプロセスから同時に、かつ頻繁に細かなデータアクセスが発生するシステムにおいては、IOPSの性能がシステム全体の応答速度や処理能力に直接的な影響を及ぼす。ストレージの性能指標には、IOPSの他にスループットがある。スループットが1秒間に転送できるデータ量(MB/sなど)を示すのに対し、IOPSは処理できる回数を示すという違いがあり、システムの用途に応じてどちらの指標を重視すべきかが異なる。

I/O処理とは、コンピュータがストレージに対して行うデータ操作の基本的な単位である。例えば、アプリケーションがファイルを開いたり保存したりする操作、データベースが特定のレコードを検索したり更新したりする処理、あるいはオペレーティングシステム(OS)が動作に必要なシステムファイルを読み込むといった、あらゆるデータのやり取りがI/O処理に該当する。IOPSは、これらの処理を1秒間に何回こなせるかという能力を数値化したものである。

IOPSの値を評価する際には、その測定条件を理解することが極めて重要である。なぜなら、IOPSの値はいくつかの要因によって大きく変動するためだ。その一つがブロックサイズ、すなわち1回のI/O処理で扱うデータの大きさである。一般的に、ブロックサイズが小さいほどIOPSの値は高くなる傾向がある。例えば、4KBのような小さなデータを扱う処理では、同じストレージでも1MBのような大きなデータを扱う処理に比べて、より多くの回数のI/Oをこなすことができる。したがって、異なるストレージのIOPSを比較する際は、同じブロックサイズで測定された値でなければ正確な性能比較はできない。

次に、読み込みと書き込みの比率もIOPSに影響を与える。多くのストレージ、特にSSDは、データの読み込み処理の方が書き込み処理よりも高速である。そのため、読み込み処理のみ(リード100%)で測定したIOPSと、書き込み処理のみ(ライト100%)で測定したIOPS、あるいは読み込みと書き込みが混在した状態(例えばリード70%、ライト30%)で測定したIOPSでは、値が大きく異なる。実際のシステム環境で発生するI/O処理は読み書きが混在していることが多いため、想定されるワークロードに近い比率で測定された値を参考にすることが望ましい。

さらに、アクセスパターンも性能を左右する重要な要素である。アクセスパターンには、連続したデータ領域に順番にアクセスするシーケンシャルアクセスと、ストレージ上のバラバラな位置にあるデータにアクセスするランダムアクセスの二種類がある。IOPSは、特にランダムアクセス性能を評価する指標として重視される。HDDは、物理的な磁気ヘッドを目的のデータ位置まで移動させる必要があるため、ランダムアクセスが非常に苦手であり、IOPSの値は低くなる。一方、半導体メモリを使用するSSDは、機械的な動作を伴わずに電気的にデータへアクセスできるため、ランダムアクセスが極めて高速であり、HDDの数千倍から数万倍もの高いIOPS値を実現できる。

このような特性から、高いIOPS性能が求められるシステムの代表例として、データベースサーバーが挙げられる。不特定多数のユーザーからの検索や更新要求は、ストレージに対してランダムなアクセスを大量に発生させるため、IOPSの高さが直接的に処理速度の向上につながる。また、一台の物理サーバー上で多数の仮想マシンを稼働させる仮想化基盤、特に仮想デスクトップ(VDI)環境も同様である。各仮想マシンが個別にOSやアプリケーションを動作させると、ストレージへのI/O要求が集中し、ランダムアクセスが多発する。この状況をI/Oブレンダー効果と呼び、ストレージのIOPS性能が低いとシステム全体が遅くなる原因となる。

前述のスループットとの違いについて補足すると、IOPSは「I/Oの回数」、スループットは「データの転送量」を測る指標である。両者は、IOPS × ブロックサイズ = スループットという関係にある。データベースのように小さなデータを頻繁にやり取りするシステムではIOPSが重要視され、動画のストリーミングや大容量ファイルのバックアップのように、一度に大きなデータを連続して転送するシステムではスループットが重要視される。システムの性能要件を考える際には、そのシステムで発生するI/O処理の特性(ワークロード)を分析し、IOPSとスループットのどちらを優先すべきかを判断する必要がある。

結論として、IOPSはストレージ、特にランダムアクセス性能を評価するための根幹的な指標である。システムエンジニアは、構築するシステムの用途とそこで発生するI/Oの特性を正確に把握し、求められる性能要件を満たすIOPSを持つストレージを選定することが不可欠となる。また、単にIOPSの数値の大小だけでなく、その値がどのような測定条件下で得られたものなのかを確認し、実環境に即した性能評価を行うことが、安定したパフォーマンスを持つシステムを設計する上で極めて重要である。

関連コンテンツ