我的计算机如何使用300%的PC处理能力?


65

我正在玩一个脚本,但是我被带走了(它现在仍在运行,但是我的计算机还没死)。我正在运行该脚本的17次迭代(目的是使计算机崩溃)。

观察活动监视器,我发现每个Python进程都有一个唯一的pid,并且每个进程似乎占用了我大约17-20%的处理能力……这怎么可能?我的计算机是否神奇地增加了200%的功率并打破了某个地方的热力学定律?

在此处输入图片说明


28
300%的CPU = 3个CPU。
user20574 '16

7
“功率水平为400%”
Nitish

让我想起了Warp引擎失控的所有《星际迷航》情节...
丹尼尔(Daniel)

那是严重的超频!!
Andrew Grimm

Answers:


101

在OS X上,像其他* nixes一样,CPU负载是按每个虚拟处理器内核进行测量的。如果您有多个-在满负载下可以合并200%或更多。

这与Windows以及其他一些系统不同,在Windows中,系统会按整个CPU(或多个CPU)计算CPU负载。


21
该答案仅适用于某些平台!例如,Windows报告总CPU负载,而不是单个内核的百分比。
fabspro

2
值得注意的是,例如正常运行时间命令报告的十进制负载表示形式(例如0.5或2.4)不是每个内核使用百分比的总和,而是对您需要立即处理每个请求的内核数量的估计。我不确定此应用程序会将这些值标准化多少。
2016年

3
@Sebb平均负载(LA)是等待执行的平均进程数,它们可能正在等待IO,而不是必需的CPU
Vasfed

3
来自Linux man的@ Random832 man-man7.org/linux/man-pages/man1/uptime.1.html:“平均系统负载是处于可运行或不可中断状态的平均进程数。处于可运行状态的进程正在使用CPU或正在等待使用CPU。处于不间断状态的进程正在等待某些I / O访问,例如,等待磁盘。”
Vasfed

4
@slebetman平均负载与CPU时间无关,而是队列长度,例如,请参阅serverfault.com/a/524818
Vasfed

81

OS X和Linux以及可能的其他UNIX操作系统(或这些系统上最常用的工具)显示的CPU使用情况与Windows有所不同。在Windows上,100%表示“已使用的所有 CPU资源”。在Linux上,这意味着一个“线程”(如在超线程中)完全繁忙。因此,它最多可以达到(Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs)总数。

尽管不完全相关,但另一个有趣的事实是:Windows 10使用CPU的当前限制状态进一步标准化了CPU使用率。因此,以1 GHz速度运行的2 GHz CPU最多只能占50%的繁忙。


7
有趣的事实。:)
Hennes

7
借助Turbo Boost,Windows将报告CPU运行超过100%
Martheen Cahya Paulo

我认为这是BSD方式,而不是一般的* nix方式。我在Mac和FreeBSD盒上看到了同样的东西。
JDługosz

1
@JDługosz我敢肯定,至少在某些工具上,Linux也是如此。top例如,我很确定这种行为。
reirab

12

正如已经在几个答案中指出的那样,Mac将每个进程的CPU百分比显示为“一个内核的百分比”,因此您应将其除以内核数(包括HT为“双精度”)。

如果不确定自己有多少个虚拟核心, Cmd ⌘ 3 将弹出“活动监视器”的“ CPU历史记录”窗格,您可以在其中简单地计算条纹数;)

在此处输入图片说明

您需要在该图像的下面直接截取该图像,以快速确定System:,User:和Idle的实际总使用量,其中简单的总计数就可以达到100%

在此处输入图片说明


4
真的吗?24核???? 我勉强拿到4 :) TIL确实感谢分享这个!: puu.sh/nNrHU/f2abb55dc7.png
Frankenmint

5
嗯...是的-这是Mac Pro 5,1-“奶酪刨丝器”的最后一个。双6核Xeons [+ HT];)
Tetsujin

6

活动监视器实际上并没有衡量每个应用程序/进程使用的处理能力,它只是使用一种算法对其进行估算。因此可能不准确...

而且,正如@Vasfed指出的那样,CPU消耗是按每个处理器内核进行测量的。多核可能意味着超过100%的使用率...

一个极客偶尔会偶然发现这种现象,并为之感到惊讶,直到超级用户帮助他为止。


@underscore_d是的...但是当我回答时,只有一个答案。其他(公认更好)的答案稍后发布了……
rahuldottech

足够公平,我应该检查超过“天”级别的时间...这还不算太糟糕:p
underscore_d
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.