psutils,如何正确计算进程 CPU 利用率

psutils, how to correctly calculate a process CPU utilization

我有以下过程:

PID = 1245
p   = psutil.Process(PID)

当我计算这个进程的 cpu 利用率时:

print(p.cpu_percent())

它给出了类似 25% 的东西。虽然整个 CPU 利用率约为 3%:

print(psutil.cpu_pecent())

怎么会?我怎样才能获得这个特定过程的代表性百分比?

很可能是因为 3% 是所有核心的总使用率,而 25% 是单个核心容量的使用率。您可以随时查看 psutil.cpu_percent() and psutil.Process.cpu_percent() 的文档以获得对该行为的更深入的解释。

要获得总系统容量的使用情况,您需要将其除以您可以访问的 CPU 数量:

PID = 1245
p   = psutil.Process(PID)
tot_load_from_process = p.cpu_percent()/psutil.cpu_count()
print(tot_load_from_process)
print(psutil.cpu_pecent())