web-dev-qa-db-ja.com

Linuxプロセスのリソース使用量(CPU、ディスク、ネットワーク)の取得

/ procを使用して、特定のプロセスのリソース使用量を毎秒検索したいと思います。リソースには、CPU時間、ディスク使用量、ネットワーク使用量が含まれます。/proc/pid/statを見ましたが、必要な詳細が得られているかどうかわかりません。 3つのリソース使用量すべてが必要であり、それらを毎秒監視したいと思います。

17
sethu

一部の新しいカーネルには/proc/<pid_of_process>/ioファイル。ここにIO統計があります。manprocには文書化されていませんが、自分で数値を把握することができます。

それが役に立てば幸い。アレックス。

4

getrusage()は、CPU、メモリ、ディスクなどを実行します。

man 2 getrusage

ネットワークについてはわかりません。

1
TMS

チェックアウト 一瞥

CPUディスクとネットワークがすべて1つの画面に表示されます。プロセスごとではありませんが、3つの別々のツールを見るよりはましです。

1
stu
0
0x90

SARを使用できます

-x特定のプロセスの統計を報告します。

詳細については、これを参照してください: http://www.linuxcommand.org/man_pages/sar1.html

例:sar -u -r -b 1 -X PID | grep-v平均| grep -v Linux

0
user2094864

このような問題に取り組む最善の方法は、同様の監視とレポートを実行するツールのソースコードを調べることです。/procを直接使用しているという保証はありませんが、問題に取り組むための効率的な方法につながります。あなたの場合、top(1)、iotop(8)、nethogs(8)が思い浮かびます。

0
Michael Iatrou

プロセスごとにディスクとネットワークの情報を取得する方法があるとは思わないでください。

あなたが持つことができる最高のものは、グローバルディスクとネットワーク、そしてプロセスごとのCPU時間です。

すべてman procに記載されています

0
Soren