/ procを使用して、特定のプロセスのリソース使用量を毎秒検索したいと思います。リソースには、CPU時間、ディスク使用量、ネットワーク使用量が含まれます。/proc/pid/statを見ましたが、必要な詳細が得られているかどうかわかりません。 3つのリソース使用量すべてが必要であり、それらを毎秒監視したいと思います。
一部の新しいカーネルには/proc/<pid_of_process>/io
ファイル。ここにIO統計があります。manprocには文書化されていませんが、自分で数値を把握することができます。
それが役に立てば幸い。アレックス。
getrusage()
は、CPU、メモリ、ディスクなどを実行します。
man 2 getrusage
ネットワークについてはわかりません。
チェックアウト 一瞥 。
CPUディスクとネットワークがすべて1つの画面に表示されます。プロセスごとではありませんが、3つの別々のツールを見るよりはましです。
SARを使用できます
-x特定のプロセスの統計を報告します。
詳細については、これを参照してください: http://www.linuxcommand.org/man_pages/sar1.html
例:sar -u -r -b 1 -X PID | grep-v平均| grep -v Linux
このような問題に取り組む最善の方法は、同様の監視とレポートを実行するツールのソースコードを調べることです。/procを直接使用しているという保証はありませんが、問題に取り組むための効率的な方法につながります。あなたの場合、top(1)、iotop(8)、nethogs(8)が思い浮かびます。
プロセスごとにディスクとネットワークの情報を取得する方法があるとは思わないでください。
あなたが持つことができる最高のものは、グローバルディスクとネットワーク、そしてプロセスごとのCPU時間です。
すべてman proc
に記載されています