psutil:测量特定进程的CPU使用率

2024-05-09

我正在尝试测量进程树的 cpu 使用率。

目前获取进程(没有子进程)的 cpu_usage 就可以了,但我得到了奇怪的结果。

import psutil
p = psutil.Process(PID)
p.cpu_percent

还给我float>100, 这怎么可能呢?

btw PID是简单的 pid

def foo():
    i = 0
    while True:
        i += 1

根据任务管理器,它的CPU使用率大约是12%

我想要得到的输出12.5或类似的东西。


我阅读了一些有关 psutil 的文档,这是我得到的:

注意:百分比 > 100 是合法的,因为它可能是由在不同 CPU 内核上运行 > 多个线程的进程产生的。

所以为了摆脱 >100 你应该这样做:

注意:返回的值明确未在所有 CPU 核心之间平均分配(与 psutil.cpu_percent() 不同)。这意味着在具有 2 个 CPU 核心的系统上运行的繁忙循环进程将被报告为具有 100% CPU 利用率,而不是 50%。这样做是为了与 UNIX 的“top”实用程序保持一致,也为了更容易识别占用 CPU 资源的进程(独立于 CPU 核心的数量)。必须注意的是,在上面的示例中,Windows 上的 taskmgr.exe 将报告 50% 的使用率。要模拟 Windows 的 taskmgr.exe 行为,您可以执行以下操作:

p.cpu_percent() / psutil.cpu_count()。

由于我从其他地方得到了这个答案,我会给你一个链接来检查它 出去:http://psutil.readthedocs.io/en/release-2.2.1/#psutil.Process.cpu_percent http://psutil.readthedocs.io/en/release-2.2.1/#psutil.Process.cpu_percent

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

psutil:测量特定进程的CPU使用率 的相关文章

随机推荐