帯域幅を使用したIOPSの計算

帯域幅を使用したIOPSの計算

システムから受信した書き込み帯域幅値があり、BWを使用して書き込みIOPSを計算する必要があります。

Bandwidth = amount of data / second

http://rickardnobel.se/storage-performance-iops-latency-throughput/

上記のリンクに従って、次の式を観察しました。

Average IO Size * IOPS = Bandwidth

したがって、私の理解が正確であれば、平均IOサイズがあればIOPSを計算できます。

例:

平均IOサイズは4KB、帯域幅=32KB、

IOPS = Bandwidth / Average IO Size 
IOPS = 32KB / 4KB 
IOPS = 8

2つの質問があります。

1)正しいですか?
2) 定義によると、平均IOサイズ実行しているOSとアプリケーション/サービスによって異なるため、この平均IOサイズを取得する方法について詳しく説明できる人はいますか?これにより、IOPSを取得できます。

答え1

IOPS - 1秒あたりの入力/出力操作

したがって、実際には非常におおよその次のように推定できます。

帯域幅/(平均トランザクションブロックサイズ+通信オーバーヘッド)

すべてのチェックサムとプロトコルのカプセル化を含むペイロードは非常に大きくなる可能性があり、実際のI / Oトランザクションはハードウェアレベルでバッチ処理されるため、ソフトウェアの観点からこれらの操作は見えなくなります。

AHCIモードとPATAモードを比較すると、ATAコマンドセットをさらにカプセル化するだけで約2.5のオーバーヘッドが発生します。コマンドキューが同期しているため、追加のドライブヘッドの移動を最適化することはできません。一部のAHCI NCQ最適化が失敗する可能性があります。

SSDの場合、SSDはおおよそのデータのみを保存し、時間の経過とともにパフォーマンスが低下し、ハードウェアコントローラのIO実行計画を予測する必要があります。

最近では、ブロックデバイスで実際のIOPSを測定することはかなり面倒になりました。したがって、ブロックデバイスにIOPSカウンタのハードウェア実装がない場合、ソフトウェアレベルでそれを測定することは事実上不可能です。

おおよその推定について話している場合、NVMeコントローラIOPSの計算精度は現在約+/- 10K IOPSになります。

関連情報