每个进程的CPU使用率?

时间:2012-01-14 23:12:37

标签: linux performance

如何在每个进程的基础上获取cpu使用百分比?因此,例如,我想运行我的程序prog并获取它所产生的CPU使用率,例如:

  prog name cpu0 cpu1 cpu2 cpu3  total
  prog        15   20   45   47   127%

这有什么工具吗? 感谢。

4 个答案:

答案 0 :(得分:1)

对于firefox:

while [ 1 ]; do ps --no-heading -C firefox -L -o command,psr,pcpu|sort -k 2 -n; echo; sleep 1; done

你必须总结第三列(我看不出任何可笑的简单方法),因为它实际上向你展示了每个线程。第一列是名称,第二列是第三列,%cpu。

答案 1 :(得分:1)

我认为您可以使用/proc/[pid]/stat/proc/stat中的信息来估算这一点。

查看How to calculate the CPU usage of a process by PID in Linux from C?的优秀答案,其中解释了如何计算单个处理器的CPU使用率。

/proc/[pid]/stat获得的最后一个数字的第6个是“处理器%d,最后执行的CPU号”(至少在Ubuntu 12.04上)。

要扩展到多个处理器,您可以在一段时间内对CPU使用率进行采样,并且(非常粗略地!)估计每个处理器上的时间比例。然后使用这些比例来分割处理器之间的CPU使用率。根据{{​​1}}中的信息,您还可以对每个处理器的总时间进行采样,然后获得所需的所有变量!

有关proc。

的更多信息,请参阅http://linux.die.net/man/5/proc

答案 2 :(得分:0)

linux process explorer项目提供此功能,您可以在属性对话框中看到每个进程的CPU /内存/ IO图。

enter image description here

答案 3 :(得分:0)

这是一个简单的python:

$insert = "INSERT INTO `offene`
(
`id`, `vorname`, `nachname`, `email`, `telefon`, `geburtsjahr`, `postleitzahl`, `datum`, `stunde`, `minute`, `personen`, `bereich`, `nachricht`
)
VALUES
(
NULL, '$vorname', '$nachname', '$email', '$tel', '$geburtsjahr', '$plz', '$datum', '$stunde', '$minute', '$personen', '$bereich', '$nachricht');";

mysqli_query($connect, $insert);