如何从系统监视程序捕获CPU核心使用情况?

6 投票
3 回答
9851 浏览
提问于 2025-04-16 22:03

我有一个用Python写的程序,它使用了一个叫做并行Python的模块。这个模块可以把我提交的任务分配到我电脑的每个核心上去处理。我不太清楚它是怎么做到的,但当我查看系统监控时,明显看到两个核心的使用率都是100%(我正在运行一些非常耗资源的任务)。

有没有什么Python模块或工具,可以让我在运行任务时,从系统监控中捕捉到每个核心的使用情况呢?

3 个回答

0

所以,如果你有办法调用系统监控工具,把核心使用情况写到标准输出(stdout),你可以像这样做:

import subprocess
command = 'top -b -n 1'  # or whatever you use
output = subprocess.Popen(command, stdout=subprocess.PIPE).communicate[0]

# parse output here and extract cpu usage. this is super-dependent
# on the layout of your system monitor output
cpuline = output.split('\n')[2]

你可以在这里了解一下subprocess是怎么工作的。

2
import psutil 

values = psutil.cpu_percent(percpu=True) 
print values 

[0.0, 0.0, 0.0] 

values = psutil.cpu_percent() 
print values 

0.0

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

12

psutil是一个用于获取系统和进程信息的库。

>>> for x in range(3):
...     psutil.cpu_percent(interval=1, percpu=True)
... 
[4.0, 6.9]
[7.0, 8.5]
[1.2, 9.0]

撰写回答