如何从系统监视程序捕获CPU核心使用情况?
我有一个用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]