特定のプロセスのすべての統計を記録するスクリプト

特定のプロセスのすべての統計を記録するスクリプト

CPU使用量、特定のプロセスのディスク読み取り/書き込み使用量を監視したいと思います./myprocess

CPUtop命令を監視するのは良いオプションのようですが、読み書きコマンドはiotop便利なオプションのようです。

たとえば、1秒あたりの読み取り/書き込みを監視するには、コマンドを使用しますiotop -tbod1 | grep "myprocess"

私の難しさは、読み取り/秒、書き込み/秒、CPU使用率/秒の3つの変数のみを保存したいということです。上記の3つの変数の出力を組み合わせてログファイルに保存するスクリプトを書くのに役立ちますtopiotop

ありがとうございます!

答え1

どうですか?PID統計? 。試してみましたか?監視したいプロセスのPidが必要な場合がありますが、コマンドpsと簡単なawk操作で簡単に入手できます。

これはソフトウェアパッケージの一部であり、sysstat次のコマンドを入力して.debベースのシステムにインストールできます。apt-get install sysstat

答え2

prtstat( sudo apt-get install psmisc) を試すことができます。

watch -n1 prtstat <PID> | tee mylog.log

毎秒プロセス統計をダンプします。このデータを解析するには、rawバージョン(-r)を使用してください。

たとえば、utimeが必要な場合は、上記のコマンドを次のように拡張できます。

prtstat -r 30557 | grep -w utime | awk '{print $4}'

答え3

あなたはそれを使用することができますオードリアこのタスクの場合:

audria -d 1 $(pidof myprocess) | awk -F "," '{print $7, $28, $32}'

これにより、遅延時間が次に設定されます。12. モニタリング私のプロセスそして現在を印刷してくださいCPU(フィールド7)、読み取りバイト/秒(フィールド28)と苦いバイト/秒(フィールド32)。ここの読み書きカウンタにはキャッシュバイトは含まれません。これを含めるには、フィールドを選択します。26そして30代わりに。

必要に応じて、audriaはプロセスを実行して最初から監視することもできます。短い時間間隔を選択するか、監視する複数のPIDを指定することもできます。

答え4

/proc/$PID/statusコンテンツを定期的に確認すると、必要な情報をたくさん入手できます。

関連情報