Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python CPU使用率(top的输出)如何总计超过100%?_Python_Linux_Ubuntu_Cpu - Fatal编程技术网

Python CPU使用率(top的输出)如何总计超过100%?

Python CPU使用率(top的输出)如何总计超过100%?,python,linux,ubuntu,cpu,Python,Linux,Ubuntu,Cpu,我正在编写一个小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

我正在编写一个小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使用情况?=>子级计数两次?

100%的cpu是1个cpu/核心/线程的充分利用率。如果您有8个CPU,那么最大值将为800%


如果你有线程的话,这个故事就有点复杂了,因为线程不是一个真正的CPU,但是在Linux上它被算作一个CPU。

根据我的经验,我有一个超大的SQL数据库,导致了问题。这是因为它导致mysqld(mysql守护进程)在超过系统内存容量的情况下执行,从而导致服务器崩溃。当我在UNIX中尝试“top”命令时,系统显示该进程使用了超过100%的内存。因此,进程可以使用超过100%的系统内存。

通常,这种使用意味着1个内核可以使用100%;如果你有两个核心,它应该上升到200%。如果你有稍微多一点,可能是因为取整或采样的人工制品。好的,谢谢。因此,如果我想看到每个CPU的“实际”使用情况,即在
top
中显示为100%,那么将总和除以内核数应该是正确的。它可以被禁用,以将8个CPU中的每个显示为12.5%正常。。。很高兴知道:)现在我明白了。有没有更好的方法来了解一些特定进程的CPU使用情况?我的意思是除了解析topYes的输出之外,还有。您可以使用top-p{要监视的进程id}