とにかく、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をコンパイルする必要がありますか?
前もって感謝します。
探している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
これは、munin、graphiteなどで監視できるはずのもののようです。
[〜#〜] edit [〜#〜]:システムにwatch
がある場合、指定された(または無限に繰り返される)回数を自動的に実行するようにiostatを設定できます。実行間に指定されたギャップがあります! awk
実際に必要なフィールドを削除してください!
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ディストリビューションごとに異なり、正しい列を選択する必要があることに注意してください。
著者がリアルタイムの情報を探している場合は、元の質問を読み直して、collectlが進むべき道であることに同意します。それが私がそれを書いた理由です。 ;)
あなたがデータを使ってやろうとしている特定のことがあれば、おそらく私は助けることができますが、もっと知る必要があります。リアルタイムになりたい場合は、1秒未満の監視間隔を選択できます。
-マーク