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

如何在Linux中查找进程在X个时间段内的平均CPU,linux,process,cpu,Linux,Process,Cpu,我试图找出如何在X时间内获得\计算特定进程的CPU利用率(我在基于Linux的系统上用python编写代码)。 例如,我想得到的是一个进程在最后一小时\一天\ 10分钟内的平均CPU 我可以运行命令或计算吗? *我不能在后台运行像“top”这样的命令来计算CPU,我需要它在一组命令或计算中 我试着在top command上进行top研究,但没有找到对我的案例有用的信息 ps-eo pid、ppid、cmd、%mem、%cpu--sort=-%cpu-给出进程生存期的平均消耗量 有没有办法使

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

我可以运行命令或计算吗? *我不能在后台运行像“top”这样的命令来计算CPU,我需要它在一组命令或计算中

  • 我试着在top command上进行top研究,但没有找到对我的案例有用的信息

  • ps-eo pid、ppid、cmd、%mem、%cpu--sort=-%cpu-给出进程生存期的平均消耗量

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


谢谢,

使用pidstat怎么样

$pidstat-第12345页10

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

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

$pidstat-p 12345 10>my_pid_stats.txt&

这里有几个例子的链接。输出具有很大的灵活性,因此您可以对其进行定制,以更好地满足您的需要:


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

Hi Ricardo,谢谢您提供的信息,不幸的是,在我的特定情况下,我不能在后台运行命令,并在X时间后检查输出-这是一个内部工具,它将运行检查命令结果/输出在现场,并会给我答案,你知道有什么方法可以在没有后台运行的情况下获取这些信息吗?据我所知,你的目标就是在后台不断地检查cpu的使用情况,这样你就可以得到每天、每分钟或每小时的平均值。我不相信您会找到一个默认的linux工具,它将为您提供如此多的灵活性和信息。我认为最好的办法是将信息(可能每分钟)存储在一个文件中,平均命令可以是一个python函数,它只读取该文件并根据指定窗口的输入参数进行平均。