IOPSサイズモニタリング

IOPSサイズモニタリング

最新のLinuxでストレージIOPSサイズを監視する方法は?

iostatなどのコマンドを使用して、ストレージIOPSの数を監視できます。しかし、ワークロードによって生成されたiopsのサイズを知りたいです。

たとえば、最後のX秒には5 iops 4K、10 iops 8K、20 iops 16K...があります。

私はブロックデバイスレベル(/ dev / sdaなど)で監視することに興味がありますが、他のレベルでも興味深いでしょう。

ベストアンサー1

低レベル

低レベルでは、/sys/block/X/stat文書化されているからこの情報を取得できます。ここ

コンテンツの例は次のとおりです。

   10465     3250   759844    27528     4400     2983   546848    66306        0     9754    93792

私たちが望むフィールドは、読み取り用の列1と3、書き込み用の列5と7です。どちらも計算方法は同じなので、読取りについてのみ扱います。

列 1 は読み取り数 (モニター可能であることを示します)、列 3 は読み取ったセクターの数です。セクタは512バイトです。したがって、これを使用して読み取りサイズを計算するには、次のようにします$col3 * 512 / $col1
このファイルの数字は、ディスクがオンラインになった後の合計です。したがって、時間の経過とともに平均読み取りサイズを計算するには、ファイルを2回読み取り、次のように計算します($col3_t2 - $col3_t1) * 512 / ($col1_t2 - $col1_t1)

上記の方法は、アプリケーションレベルで実行されたOPのサイズを提供します(正確な説明ではありませんが、十分に似ています)。カーネルは複数のタスクをまとめて組み合わせることができるため、ディスク上で実行される作業は少なくなります。これの計算は次のとおりです$col3 * 512 / ($col1 - $col2)。そして一定期間の価値を得る。($col3_t2 - $col3_t1) * 512 / (($col1_t2 - $col1_t1) - ($col2_t2 - $col2_t1))

高レベル

iostat値を提供することもできますが、精度が低下します。書き込み、読み取りを区別せず、セクタ値のみを提供し、バイト値は提供しません(したがって、再び512を掛けます)。しかし、コマンドはでありiostat -x -d、見てみる列はですavgrq-sz

おすすめ記事