为什么“ top”命令显示的CPU使用率为799%?


47

我正在4核心Ubuntu服务器中运行一个进程。但是,该top命令显示CPU利用率始终为799%。

这怎么可能?我知道对于多核CPU,预计CPU使用率会超过100%,但是799%的价值确实很高。

有人可以向我解释为什么以及何时发生这种情况吗?

编辑:

根据格雷戈里·穆萨(Gregory MOUSSAT)的建议,使用htop可以得到以下信息:

在此处输入图片说明


1
4个内核每个都有2个线程吗(例如Intel Core i7)?
雷南2012年

@Renan,我在单线程上运行它。
2012年

好吧。因为我已经看到这种情况在某些i7系统上发生。
雷南

1
但是JVM是单线程的吗?
伊格纳西奥·巴斯克斯

6
这看起来真的像是一个满载的i7,在编码视频时我通常会收到它
nohillside 2012年

Answers:


65

top完全使用核心时,使用的比例为100%。或者,当一个核心为20%,第二个为80%时。由于它很容易超过100%,因此在多核计算机上导致奇怪的结果。
如果您有8个核心,则top可以显示0%(空闲系统)至800%(满功率)。

您的程序仅以最大容量使用具有超线程的4个内核(因此有8个虚拟内核)。因此top会给您近8 x 100%= 800%。

您不能明确地告诉JVM使用单个线程,即使您在应用程序中仅使用单个线程,它也会使用多个线程来完成其工作。

您可以使用该htop实用程序作为更好的top选择。您将看到使用所有8个核心的程序。


您可以将任何一组进程限制为一组内核,也可以限制cpu的百分比。但是我不记得这些命令。(一个是cpulimit)
ctrl-alt-

htop的+1,比顶部或顶部的方法更好
CodeLikeBeaker

+1为htop。这帮助我钉了两个CPU饥饿的线程!
阿伦

3
所有的冰雹htop
fragamemnon
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.