如何在 Linux 中找到 X 时间内进程的平均 CPU

问题描述

我试图找出如何获得\计算特定进程在 X 时间内的 cpu 利用率(我在基于 Linux 的系统上用 python 编写代码)。 例如我想得到的是一个进程在过去一小时\一天\10分钟内的平均cpu......

是否有我可以运行的命令或计算? *我无法在后台运行像“top”这样的命令 X 时间并计算 cpu,我需要它在一组命令或计算中。

  • 我尝试了对 top 命令的顶级研究,但没有找到对我的案例有用的信息。

  • ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu - 给出进程生命周期的平均消耗

  • 有没有办法使用正常运行时间或 proc[pid]\stat 来计算这个?

谢谢,

解决方法

使用 pidstat 怎么样?

$ pidstat -p 12345 10

将每 10 秒输出 pid 12345 的统计信息。这包括 CPU%

从那里你可以在后台运行它,并将输出重定向到一个文件:

$pidstat -p 12345 10 > my_pid_stats.txt &

这是一个包含几个示例的链接。输出具有很大的灵活性,因此您可以对其进行自定义以更好地满足您的需求:

https://www.thegeekstuff.com/2014/11/pidstat-examples/

pidstat 是 ubuntu 上 sysstat 包的一部分,以防您决定安装它。