CPU百分比是什么意思?


11

我正在查看某个进程的CPU使用率百分比。进程如何仅使用50%的CPU?流程不使用100%然后0%,然后100%吗?它不像其他所有指令一样是不同的程序。


1
有双处理器吗?

绝对是SuperUser的问题。
Noldorin

Answers:


16

它仅每秒轮询一次。您正在查看它使用了最后一秒的时间。

如果您看到cpu处于50%的状态一段时间,则可能是在双cpu系统中使用了100%的cpu。


4
“双核系统的一个核”-甚至是具有“超线程”的单个CPU。

@ChrisW:固定。
Joel Coehoorn

CPU使用率的百分比往往报出的100%为每个CPU单独,所以要在一个双核系统中使用的CPU功率的总量为200%,在一个四核400%,等等
大卫ž

不是在Windows任务管理器中。
Joel Coehoorn

11

从技术上讲,您是正确的。在任何给定时间,CPU正在使用或未使用。但是将其显示在图形中并不是很有帮助,因此该图形在一段时间(可能每秒)中平均CPU利用率。


3

操作系统计划在特定时间段内进行该过程。因此,如果将进程安排为(例如)10毫秒中的1毫秒,则它将使用10%的CPU。

这有点违反直觉,因为(在单线程,单CPU系统中)该进程正在运行或未运行。即使用100%或0%。您看到的百分比是在一个时间窗口内测量的,是操作系统分配时隙给您的进程运行的度量。

请注意,如果您要访问I / O,则过程将对此无济于事。因此,如果您要进行大量计算,您将注册100%(假设没有其他运行)。如果随后等待网络数据包/磁盘访问等,则尽管进程仍在运行,但CPU的数量将下降。


2

在非常低的水平上,您基本上是正确的。在任何给定的时刻,处理器要么正在执行给定进程的指令,要么没有执行。

但是您的OS位于进程和处理器之间,使它们共享时间。您看到的百分比是操作系统已授予该进程的最近处理时间的百分比。


1

它基于平均时间。尽管所有线程都可以具有相同的CPU时间(基于优先级),但这些线程只能说“谢谢,但我很空闲”,然后转到下一个线程。这就是为什么程序不总是使用相同的%时间,并且大多数程序消耗0%的CPU,而真正需要CPU的程序本身可能要花费100%的时间。

为什么上限为50%?您可能有两个CPU内核,并且仅使用一个。

或者,如建议的那样,它正在使用超线程,但是我不知道这是如何表现的。


0

您的程序可能正在执行大量I / O(磁盘或网络读/写)。这样可以使程序保持繁忙,但几乎不需要CPU时间。


0

采样并平均化系统利用率,这是唯一明智的选择。

例如,记录一个进程/线程在1秒钟内花费了多少时间。如果它在CPU上花费1秒钟,则为100%CPU(如果您有2个CPU等,则为50%),如果它花费100毫秒即为10%CPU利用率。

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.