总的CPU使用率(最高输出)如何超过100%?

西蒙·h

我正在写一个小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用法?==>孩子被计数两次了?

布雷诺·莱昂(BrenoLeitão)

100%cpu可以完全利用1个CPU / CORE /线程。如果您有8个CPU,则最大值为800%。

如果您有线程,那么情况就更复杂了,因为线程不是真正的CPU,但是在Linux上,它被视为CPU。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章