./myprocess
など、特定のプロセスのCPU使用率、ディスクの読み取り/書き込み使用率を監視したいと思います。
CPUを監視するにはtop
コマンドが便利なオプションのようで、読み取りと書き込みにはiotop
が便利なオプションのようです。
たとえば、毎秒読み取り/書き込みを監視するには、コマンドiotop -tbod1 | grep "myprocess"
を使用します。
私の難しさは、3つの変数、つまり読み取り/秒、書き込み/秒、CPU使用率/秒だけを保存したいということです。 top
とiotop
からの上記の3つの変数の出力を組み合わせて、ログファイルに保存するスクリプトを手伝ってもらえますか?
ありがとう!
PidStat ?はどうですか。試しましたか?監視したいプロセスにPidが必要な場合もありますが、それはps
コマンドと少しのawk
チョップチョッピングでかなり簡単に取得できるはずです。
これはパッケージsysstat
の一部であり、apt-get install sysstat
と入力して.debベースのシステムにインストールできます。
Prtstat(Sudo apt-get install psmisc
)の使用を試みることができます:
watch -n1 prtstat <PID> | tee mylog.log
プロセス統計を毎秒ダンプします。これらのデータの解析に関心がある場合は、生バージョン(-r)を使用してください。
たとえば、utimeが必要な場合は、上記のコマンドを次のように拡張できます。
prtstat -r 30557 | grep -w utime | awk '{print $4}'
このタスクには audria を使用できます。
audria -d 1 $(pidof myprocess) | awk -F "," '{print $7, $28, $32}'
これにより、遅延が1秒に設定され、myprocessが監視され、現在の[〜#〜が出力されます。 ] cpu [〜#〜](フィールド7)、読み取りバイト/秒(フィールド28)および書き込みバイト/秒(フィールド32)。ここでの読み取り/書き込みカウンターは、キャッシュされたバイトを除外します。それらを含める場合は、代わりにフィールド26および30を選択します。
audriaは、必要に応じて、プロセスを実行して最初から監視することもできます。より短い間隔を選択したり、監視する複数のPIDを指定したりすることもできます。
/proc/$PID/status
の内容を定期的に確認してみてください。それはあなたが探している情報のかなりの量をあなたに与えるはずです。