web-dev-qa-db-ja.com

リアルタイムで必要な非常に具体的なiostat出力

とにかく、iostat -mの出力を取得し、拡張出力から待機している列のみをリアルタイムで追加する方法はありますか?この質問はおかしなことに聞こえますが、誤解を招く結果が生じるため、ファイルに出力したり、iostatを2回実行したりせずに、これらすべての列をリアルタイムで取得できる必要があります。これはcentos6.2 iostat9.0.4です。カーネル2.6.36.4。要約すると、これが必要です。

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               0.56         0.00         0.00        324        485

このように表示されるように、待機を追加する必要があります。

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn   await
sda               0.56         0.00         0.00        324        485   10.72

私夢見てるの?私はこれを間違った方法で見ていますか?自分のiostatをコンパイルする必要がありますか?

前もって感謝します。

2
egorgry

探しているiostatフォーマットを取得する方法がわかりません。ただし、このタイプの監視に使用するツールは、関連するフィールドを表示できるようにカスタマイズできます。また、再生やグラフ化の目的でデータを生成するのにも最適です。

私は Collectl Monitoring (yum経由でCentOSで利用可能)を使用し、 ディスクチェックフラグ はあなたが必要とするものを与えるはずです:

collectl -sD --dskfilt sda

サンプル出力(印刷される単位と列を変更できます):

collectl -sD --dskfilt sdb
waiting for 1 second sample...

# DISK STATISTICS (/sec)
#          <---------reads---------><---------writes---------><--------averages--------> Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sdb              0      0    0    0     336      0   52    6       6     0     0      0    1
sdb             16      0    1   16     389      1   52    7       7     0     0      0    3
sdb              0      0    0    0    1236      9  109   11      11     0     0      0    0
sdb             16      0    1   16     676      3  140    5       4     0     1      1   14
sdb              0      0    0    0      64      1   16    4       4     0     2      1    2
2
ewwhite

これは、munin、graphiteなどで監視できるはずのもののようです。

[〜#〜] edit [〜#〜]:システムにwatchがある場合、指定された(または無限に繰り返される)回数を自動的に実行するようにiostatを設定できます。実行間に指定されたギャップがあります! awk実際に必要なフィールドを削除してください!

1
gWaldo

Bashでラッパーを作成してみませんか?

ワンライナーバージョンは次のようになります:

iostat 1 2 | grep -w sda | tail -1 | awk {'print $7'}

これにより、iostatが2回実行され、awaitの正しい値(7番目の列)が返されます。

右の列をawkに渡してCPU全体のiowaitを取得することにより、vmstatでも同じことができます。例えば ​​:

vmstat 1 2 | tail -1 | awk {'print $16'}

IostatとvmstatはLinuxディストリビューションごとに異なり、正しい列を選択する必要があることに注意してください。

1
wojciechz

著者がリアルタイムの情報を探している場合は、元の質問を読み直して、collectlが進むべき道であることに同意します。それが私がそれを書いた理由です。 ;)

あなたがデータを使ってやろうとしている特定のことがあれば、おそらく私は助けることができますが、もっと知る必要があります。リアルタイムになりたい場合は、1秒未満の監視間隔を選択できます。

-マーク

1
Mark J Seger