查询Linux操作系统上进程的所有实例的总CPU使用率

Posted

技术标签:

【中文标题】查询Linux操作系统上进程的所有实例的总CPU使用率【英文标题】:Query total CPU usage of all instances of a process on Linux OS 【发布时间】:2015-08-05 03:02:01 【问题描述】:

我有一个 python 服务器,一旦收到请求,它就会自行分叉。 python 服务有几个可以调用的 C++ .so 对象,以及 python 进程本身。

我的问题是,在这些进程中的任何一个进程中,我都希望能够查看该服务器的所有实例当前正在使用多少 CPU。所以假设我有 foo.py,我想看看 foo.py 的所有实例当前使用了多少 CPU。例如,foo.py(1) 使用 200% cpu,foo.py(2) 使用 300%,而 foo.py(3) 使用 50%,id 想达到 550%。

我自己能想到的唯一方法是获取每个进程的 PID 并扫描 /proc 文件系统。在 C/Python/POSIX 中是否有更通用的方法可用于此类操作?

谢谢!

【问题讨论】:

【参考方案1】:

这是我能想到的唯一方法。这有点令人困惑,但如果您按照步骤操作就很简单了:

如果我想选择 Google Chrome 进程的总 cpu 使用率:

$ps -e -o pcpu,comm | grep 铬 | awk ' 打印 $1 ' |粘贴-sd+ | bc -l

【讨论】:

谢谢。这几乎就是我期望使用的方法,但那是一条非常简单的线!

以上是关于查询Linux操作系统上进程的所有实例的总CPU使用率的主要内容,如果未能解决你的问题,请参考以下文章

如何使CPU占用率为50%

linux查看cpu个数

Linux内核编程:尝试获取vm_area_struct->vm_start使内核崩溃

linux怎么看cpu使用率

C++ 套接字服务器 - 无法使 CPU 饱和

Linux查看系统信息命令实例