ストレージ・デバイスのスペックシートには、以下のように書かれている。 SSDエンタープライズ・ストレージ・アレイやクラウドサービスのディスク仕様では、ほとんどの場合「IOPS」が繰り返し言及される。製品の宣伝では、「数百万IOPS」や「超高ランダム性能」がセールスポイントとして強調されることが多い。しかし、多くのユーザーにとって、IOPSは重要なように聞こえるが、完全には理解されていない技術用語のままである。ストレージ性能を測定する数多くの指標の中で、IOPSは重要でありながら誤解されがちな概念である。IOPSは目に見えない審判のような役割を果たし、システムがマルチタスクやランダムなデータアクセスをどれだけスムーズに処理できるかを静かに判断する。IOPSを理解することは、マーケティングの主張を見抜き、ストレージデバイスの性能の本質を真に把握するのに役立つ。
IOPSとは何か?
IOPSとは、Input/Output Operations Per Secondの略。IOPSは、1秒間に何回の入出力が行われるかを測定する中核的なパフォーマンス指標です。 読み書き ストレージ・デバイスが1秒間に処理できるコマンド。簡単な例え:ストレージデバイスを銀行のカウンターに見立ててみよう。IOPSは、1分間にカウンターを通過するお金の量を測定するのではなく、その1分間に処理されたトランザクションの数を測定する。したがって、IOPSは主にストレージシステムの処理能力または応答効率を測定し、操作ごとに移動するデータ量ではなく、操作の頻度に焦点を当てる。高速SSDから数KBの小さな文書を読み込む場合も、従来のハードドライブに数GBの大容量ファイルを書き込む場合も、それぞれの独立した読み取り/書き込み要求がIOPSにカウントされます。IOPSがデータ量ではなく、操作の数に焦点を当てていることを理解することが、IOPSの意味を正しく理解するための第一歩です。
なぜIOPSが重要なのか?
IOPSの重要性は、現代のコンピューティング環境の動作方法の根本的な変化に起因している。初期のコンピュータの使用方法は比較的単純で、1つの大きなシーケンシャルファイルの読み書きなど、一度に1つの主要なタスクを伴うことがよくありました。このような場合、性能のボトルネックはデータ転送速度、すなわちスループットであることが多かった。しかし、今日のオペレーティング・システムやアプリケーションは、常に高度な同時マルチタスク処理を実行している。ブラウザ、オフィス・ソフト、コミュニケーション・ツールを同時に開き、バックグラウンドで音楽を再生する場合でさえ、OSは異なるプログラムからの散在する多数の読み取り/書き込み要求を処理する必要がある。
これらのリクエストのほとんどは、ストレージ・デバイス上のさまざまな場所にランダムに分散しており、順を追って整然と並んでいるわけではない。これは混雑した交通ハブのようなものです。最も重要なのは、単一車線の最高速度制限ではなく、全方向からのトラフィックフローを処理するハブの能力であり、混雑することなく1秒間に何台の車両が交差点を通過できるかということです。高いIOPS能力は、このような大規模でランダムな同時データアクセスに直面したとき、ストレージデバイスが各リクエストに迅速に応答できることを保証する。これにより、ストレージ・ユニットが圧倒されることによるシステム・ラグの発生なしに、複数のプログラムが同時にスムーズに実行されているように見える。したがって、ランダムな読み取り/書き込み操作が支配的な日常的アプリケーションでは、高いIOPSがシステムの応答性とユーザー体験のスムーズさを直接決定する。
IOPSは具体的に何を測定するのか?
IOPSを正確に理解するためには、もう一つの一般的な指標であるスループット(しばしば転送速度(MB/s)と呼ばれる)と区別することが重要です。IOPSは、ストレージデバイスが1秒間にどれだけの独立した読み取り/書き込み操作を実行できるかに焦点を当て、個別のタスクを処理する能力を測定します。スループットは、単位時間当たりに正常に転送されたデータの総量に注目し、データフローの帯域幅を測定します。両者の関係は、リード/ライト操作ごとに要求されるデータブロックサイズという重要な要素に影響される。簡単な変換がある:
転送速度(MB/s)≒IOPS×ブロックサイズ(通常KB)/1024
つまり、一定のIOPSの場合、データブロックサイズが直接転送速度を決定する。例えば、10,000 IOPSのストレージ・デバイス。典型的な4KBの小さなデータ・ブロックを扱う場合、その転送速度はおよそ10,000×4KB÷1024≒39 MB/sとなる。この速度は速いとは思えない。しかし、同じデバイスで1MBのラージブロックを処理すると、その速度は10,000×1MB / 1024 ≒ 9.8GB/sとなり、非常に素晴らしい速度になります。この例から明らかなように、IOPSが高いからといって大容量ファイルの転送速度が速いとは限らない。逆に、非常に高いシーケンシャル・リード/ライト速度を誇るデバイスでも、巨大な小ファイルを扱うときにはIOPSが低くなり、パフォーマンスが低下する可能性があります。したがって、ブロック・サイズやアクセス・パターンを考慮せずに、IOPSや転送速度を単独で論じることは不完全です。
IOPSはどのようにテストされるのか?
IOPS値は絶対的な固定値ではなく、テスト条件に大きく依存する。意味のあるIOPSデータを取得したり、ベンダーが公表しているスペックを正しく理解したりするには、主要なテストパラメータを知る必要がある。(追記:テストには、一般ユーザー向けのCrystalDiskMarkのような専門的なベンチマークツールや、FIOのようなより強力で柔軟なコマンドラインツールが必要です)。
設定する主なパラメーターは、リード/ライト・タイプとブロック・サイズである。
- リード/ライトタイプ。 大きく分けて2つのタイプがある:シーケンシャルとランダムだ。シーケンシャル・リード/ライトは、映画のコピーのように、1つの大きなファイルの読み書きをシミュレートする。ランダム・リード/ライトは、OSやデータベースの実行をシミュレートするもので、ディスク上に散在する多数の小さなファイルを頻繁にリード/ライトする必要があり、ストレージ性能の主要なテストとなる。
- ブロックサイズ。 4KBは、業界ベンチマークのほぼデフォルトの標準である。これは、最新のOSのファイルシステム構造と、ほとんどのアプリケーションが生成するI/Oリクエストが、4KBのページサイズを中心に回っているためです。標準サイズを使用することで、デバイス間の比較が容易になります。そのため、一般的に目にする「Random Read/Write IOPS」という指標は、特に指定がない限り、通常4KBのブロックサイズで測定された値を指します。
もう一つの重要なパラメータは、キュー深度(Queue Depth:QD)である。これは、システムがストレージデバイスに同時に送信するコマンドの数と考えることができる。キュー深度が高ければ高いほど、ストレージ・コントローラの並列処理能力をよりよく活用することができます。例えば、高性能のエンタープライズ向けNVMe SSDのレビューには、次のように書かれているかもしれません:「最大ランダム読取りIOPS(4KB、QD=32)は100万に達します。この数値は、QD=1で測定されたIOPSの数十倍である可能性があり、高負荷時のデバイスのピーク性能を示しています。
最後に、ピーク性能と定常性能を区別することが重要な概念です。多くのテストでは、SSD の SLC キャッシュが消耗していない短時間の高負荷時にピーク性能を示すことがデフォルトとなっており、印象的な結果が得られます。しかし、より重要な指標は定常状態性能です。つまり、長時間の激しい読み取り/書き込みを行った後に性能が安定するレベルです。これは、極度の負荷がかかった状態でのデバイスの真の性能と、長期的な安定性をよりよく反映するものです。
IOPSに影響を与える主な要因
ストレージ・デバイスのIOPS性能は、単一の要因によって決まるのではなく、基盤となるハードウェアとソフトウェアの複合効果によって決まる。主な影響要因には以下が含まれる:
- 記憶媒体タイプ これが最も基本的な要因である。HDDのIOPSは、物理的な読み取り/書き込みヘッドのシーク時間によって制限され、通常はわずか几十から200程度です。SSDは電子信号を使用し、機械的な遅延をなくすことで、数万から数百万のIOPSを達成しています。
- インターフェイスとプロトコル。 インターフェイスはデータ経路であり、プロトコルは通信ルールである。SATAインターフェイスとAHCIプロトコルはHDD時代のために設計されたもので、その帯域幅とコマンド効率はSSDの性能を制限します。PCIeインターフェイスを備えたNVMeプロトコルは、高帯域幅と低レイテンシーを提供し、特に高IOPS SSD向けに設計されています。
- コントローラーとファームウェアのアルゴリズム。 コントローラー はストレージデバイスの頭脳である。強力なコントローラ・チップは、高いキュー深度の下で、同時リクエストを効率的に管理することができる。高度なファームウェア・アルゴリズムが、リード/ライト処理、ガベージコレクション、ウェアレベリングを最適化し、IOPSピークと安定性を直接決定する。
- 読み書きタイプ。 通常、読み取り IOPS は書き込み IOPS よりも高い。特に SSD の場合、書き込みは最初に消去ステップを必要とすることがあるため、ランダム書き込み IOPS が性能のボトルネックになることが多く、全体的なドライブ設計品質の重要な指標になります。
- キューの深さ。 テストでも述べたように、キュー深度が高いほど、ハードウェアの同時処理能力をより有効に活用できる。したがって、高いIOPSを達成するためには、高いキュー深度をサポートすることがハードウェアの基本要件となる。
IOPSと他のパフォーマンス指標との関係
ストレージ性能を完全に評価するには、IOPSを単独で見るのではなく、レイテンシーやスループットといった他の指標と組み合わせる必要がある。これらは相互に関連したパフォーマンス像を形成する。
- IOPSとレイテンシーの比較。 これが中核となる関係である。レイテンシは、1回のI/O操作を完了するのにかかる時間を測定する。理想は、IOPSが高く、レイテンシが低いことです。しかし、負荷が増加し、IOPSがデバイスの限界に近づくと、リクエストは待ち行列になり、レイテンシは大幅に上昇する。したがって、高いIOPSは、低いレイテンシを伴う場合にのみ実用的な価値があります。そうでない場合は、混雑した料金所のようなもので、通過する車両の総数は多いかもしれませんが、各車両の待ち時間は長くなります。
- IOPSとスループットの比較:これらは「ブロックサイズ」によって式で結ばれている:スループット≒IOPS×ブロックサイズ。焦点は異なります:高いIOPSは、巨大な小容量ファイルのランダムリード/ライトを含むアプリケーションにとって重要であり、高いスループットは、大容量ファイルのシーケンシャルリード/ライトに有利である。優れたストレージ・デバイスは、両方のモードで優れた性能を発揮するはずです。
- IOPSとQoS(サービス品質):高度なシナリオでは、平均IOPSだけでは十分ではありません。QoSはIOPSとレイテンシの安定性に重点を置き、大半のリクエストに対して予測可能な応答時間を保証します。重要な指標はテールレイテンシーで、I/Oリクエストの99.9%、あるいは99.99%のレイテンシーがある閾値以下であることを保証します。これにより、少数の非常に遅いリクエストが全体的なエクスペリエンスに影響を与えるのを防ぐことができ、これはデータベース、仮想化、その他の重要なタスクにとって非常に重要です。
さまざまなシナリオにおけるIOPSの実際的な意味
IOPSの重要性はアプリケーションのシナリオによって異なる。様々なニーズを理解することは、より良いストレージの選択に役立つ。
- コンシューマー/パーソナル・コンピューティングここで、ユーザーエクスペリエンスは、ストレージデバイスのランダムリードIOPSに大きく依存する。高いランダム読取りIOPSは、OSの起動時間を大幅に短縮し、アプリケーション(ブラウザ、オフィススイート)のロードを高速化し、ゲームレベルのロード中のスタッターを低減します。ほとんどのユーザーにとって、優れたランダム読取り性能を持つSATA SSDまたはエントリーレベルのNVMe SSDは、画期的な改善をもたらします。
- エンタープライズ・サーバーとデータベース これはIOPSにとって最も要求の厳しいシナリオの一つであり、特に高いランダムリード/ライトIOPSと非常に低いレイテンシが要求される。オンライン・トランザクションを処理するデータベース管理システム(オラクル、MySQLなど)は、散在する多数の小さなデータ・ブロックを瞬時に読み書きする必要がある。複数のVMを同時に実行する仮想化プラットフォーム(VMwareなど)では、高密度でランダムなI/O負荷が発生します。この場合、IOPSの安定性と一貫性(QoS)は、ピーク性能よりも重要であることが多い。
- AIとビッグデータ分析これらのシナリオには複雑なニーズがあり、多くの場合、高スループットと高IOPSの組み合わせが必要です。AIモデルのトレーニングのためのデータ準備段階では、大量のトレーニングサンプルファイル(多くの場合、多くの小さなファイル)を素早く読み込むために、高いIOPSが必要となります。実際のトレーニング・プロセスでは、大きなデータ・バッチをシーケンシャルに読み込む傾向があり、シーケンシャル・リードのスループットが重要になります。したがって、これらの分野では、高性能のNVMe SSD、さらにはNVMe-oFアーキテクチャが好まれます。
IOPSの限界
IOPSは重要なストレージ性能指標であるが、それに頼りすぎたり、単独で見たりすると誤解を招くことがある。数字だけ」の罠を避けるために、その限界を認識しなければならない。
- ピーク対現実世界:単一の高いIOPSの数値が、必ずしも実際のユーザー体験の素晴らしさと一致するとは限りません。ベンダーのIOPS数値は、理想的なラボ条件(例:高いキュー深度、短いテスト)で測定されたピーク性能であることが多い。これは、ユーザー操作が低いキュー深度に似ている日常的な使用では再現が難しく、IOPSははるかに低くなる可能性があります。低いキュー深度で安定した低レイテンシのIOPSを提供するドライブは、高いキュー深度で高い数値のみを記録するドライブよりも優れていると感じることがよくあります。
- レイテンシーのばらつきを隠す。 IOPSは平均値であるため、個々のI/Oリクエストのレイテンシの分布を明らかにすることはできない。IOPSは1秒あたりの総操作数をカウントするが、極端に遅い要求がいくつか混ざっている場合はわからない。このような高レイテンシのリクエスト、すなわち「テールレイテンシ」は、数は少ないものの、アプリケーションのスタッタやデータベースのタイムアウトを引き起こす可能性があります。スムーズな一貫性を必要とするアプリケーションにとって、リクエストの99.9%が一定のレイテンシしきい値以下であることを保証することは、高い平均IOPS数を追い求めるよりもはるかに重要です。
- パフォーマンスの持続可能性。 標準的なIOPSテストは、長時間の高負荷下でのパフォーマンスの安定性を反映しないことがよくあります。多くの SSD は、当初は非常に高速な速度を維持するために SLC キャッシュを使用していますが、キャッシュが枯渇すると、書き込み速度が大幅に低下することがあります。したがって、最初の数秒間の「ピーク性能」よりも、数十分または数時間にわたって書き込みを持続した後のドライブの「定常状態性能」の方がより意味があります。また、IOPS自体は、データの安全性やドライブの耐久性については何も語らない。高IOPSのドライブには、ファームウェアのバグや短い寿命がある可能性がある。
IOPSを正しく表示するには?
- まずシナリオ。 指標を評価する前に、主なユースケースを定義してください。コンシューマー・タスク(オフィス・ワーク、ウェブ・ブラウジング、ゲーム)には SATA SSD または、数万から数十万の範囲のIOPS(例えば、10万から50万のランダム読み取りIOPS)を持つエントリーレベルのNVMe SSDは、すでに非常にスムーズなエクスペリエンスを提供しています。やみくもに数百万のIOPSを追い求めても、知覚できる改善はわずかです。逆に、エンタープライズ・シナリオ(データベース、仮想化、HPC)では、以下のものを選択します。 エンタープライズSSD 数十万から数百万以上の安定したIOPSで、低レイテンシーを重視。
- 総合的な検討。 IOPSの数値だけを見るのではなく、他の指標や要素と組み合わせる。
- IOPSとレイテンシ:平均レイテンシが0.1ms未満で800kランダム読取りIOPSを謳うドライブは、1M IOPSで1msのレイテンシを持つものよりもはるかに優れています。
- 定常状態に注目:専門的なレビューでは、ドライブの性能がピーク時の500k IOPSから、全負荷状態で30分経過すると安定した150k IOPSに低下することがあります。この「安定値」はピークよりも重要です。
- 耐久性と保証を考慮する:保証期間とTBW(総書き込みバイト数)を常にチェックすること。例えば、1TB SSDの保証期間は5年または600TBWである場合があり、IOPS数よりも長期的な信頼性を示しています。
- ベンチマークについて合理的であれ。 ベンチマーク・スコアは重要な参照ツールであり、絶対的な基準ではありません。例えば、同一のテスト・パラメータの下で、同価格帯の異なる SSD モデルの IOPS を比較するなど、選択肢を素早く絞り込むのに役立ちます。しかし、最終的な決定では、製品の全体的な実世界での挙動を反映するため、長期間にわたる実世界での性能に関するユーザーレビュー、故障率レポート、およびブランドの評判も考慮する必要があります。
ストレージ性能の世界では、IOPSは同時リクエストを処理するデバイスの基本的な能力を明らかにする重要な中核指標である。しかし、これまで見てきたように、それはパズルの1ピースに過ぎない。真の性能評価には、単一の数値を超えて、より大きな絵を見る必要がある。高性能ストレージの本質は、複数の次元にわたる絶妙なバランスにある。IOPSだけでなく、レイテンシは応答性を決定し、スループットは大容量データの転送効率に影響し、長期安定性は事業継続の鍵となる。これらの指標は相互に関連しており、どれかの弱点が実際の経験においてボトルネックになる可能性がある。ユーザーにとって、IOPSを合理的にとらえ、実負荷下での総合的なパフォーマンスに注目することが、ストレージ・デバイスの選択と評価の鍵となる。





