获取Linux进程资源使用情况(cpu,磁盘,网络)

时间:2011-07-08 03:46:45

标签: linux resources cpu-usage procfs

我想使用/ proc每秒查找特定进程的资源使用情况。资源包括cputime,磁盘使用情况和网络使用情况。我查看/ proc / pid / stat,但我不确定我是否收到了所需的详细信息。我想要所有3个资源使用,我想每秒监视它们。

8 个答案:

答案 0 :(得分:4)

一些较新的内核有/proc/<pid_of_process>/io个文件。这是IO统计数据的位置。 它没有在man proc中记录,但你可以尝试自己弄清楚数字。

希望它有所帮助。 亚历克斯。

答案 1 :(得分:1)

getrusage()完成cpu,内存和磁盘等。

man 2 getrusage

我不了解网络。

答案 2 :(得分:1)

结帐glances

它在一个屏幕上都有cpu磁盘和网络。它不是每个流程,但它比查看3个独立的工具更好。

答案 3 :(得分:0)

不要认为有办法在每个进程的基础上获取磁盘和网络信息。

您可以拥有的最好的是全局磁盘和网络,以及每个进程的CPU时间。

所有记录在man proc

答案 4 :(得分:0)

答案 5 :(得分:0)

解决此类问题的最佳方法是查找执行类似监控和报告的工具的源代码。 虽然不能保证他们直接使用/ proc,但它们会引导您以有效的方式解决问题。 对于你的情况,我想到了top(1),iotop(8)和nethogs(8)。

答案 6 :(得分:0)

您可以使用SAR

-x报告给定流程的统计信息。

有关详细信息,请参阅此处: http://www.linuxcommand.org/man_pages/sar1.html

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

答案 7 :(得分:0)

您可以使用top

SYNOPSIS
    top -hv|-bcHiOSs -d delay -n limit -u|U user -p PID -o champ -w [columns]

This is a screen capture of top in a terminal