我正在编写一个小的Python脚本来测试一些东西。稍后我想用它来创建使用gnuplot的资源使用情况图,但首先需要进行一些测试。
这个脚本看起来像:
import subprocess
result = subprocess.check_output("top -b -n 1 -c", shell=True).split("\n")
head = result[:5]
body = [x for x in result[7:] if x] #removes empty strings
for line in head:
print line
csum = 0.0
for line in body:
print line
csum += float(line.split()[8])
print "CPU usage of all processes added up", csum, "%"
多次运行结果几乎总是显示CPU使用率大于100%,有时甚至超过200%。这怎么可能?
它在虚拟机中运行(virtualbox,ubuntu 14.04 64位),具有两个内核。主机也有两个内核。
所有运行进程的使用值之和不应该始终低于100%吗?我同时运行htop,它向我显示每个内核约50%的负载....
问题可能是某些进程启动了其他进程,并且在top输出中同时显示,而父进程还显示子进程的CPU使用情况? ==> 子进程被计算两次?