为什么当表为0.0%时,htop计显示> 90%?


12

为什么屏幕顶部的进度表htop显示的CPU使用率始终高于90%,而下表中的数字显示的是接近空闲的系统,其CPU使用率和平均负载为0.0%?

Htop屏幕抓取


1
我有完全相同的问题,我也在Dreamhost VPS(虚拟专用服务器)上。
duality_

顺便说一句,看我的例子,情况更糟:demo.ddesign.si/temp/dh3.png
duality_

Answers:


6

htop不知道它正在内核级别的虚拟化环境上运行(Dreamhost VPS使用VServer技术)。然后,它显示了共享同一个内核的所有OS实例(不仅是您的内核)的CPU使用率。

看一下vtop输出显示所有共享CPU的进程,而不仅仅是容器中的进程。

如果vtop未安装,并且这可能是一种商业解决方案,因为它不希望客户看到其他客户正在运行的进程,则无法从容器内部解决问题,除非修补top源以进行计算CPU使用率,而不是从内核统计信息中获取。

它可以通过汇总VServer中运行的所有进程的CPU使用率来实现,例如:

ps aux | awk '
    {cpu+=$3; ram+=$6} 
    END {printf("cpu: %d%%, RAM: %.2f MiB\n",cpu,ram/1024) }'

+1进行解释;top报告与此计算机上的htop类似。Vtop未测试为未安装。将其标记为已接受,是因为它回答了“为什么?”,尽管它没有解决隐式的“以及对此可以做什么?”,因为这是不言而喻的
马特·威尔基

4

这种不一致通常表示内核线程对处理器的使用率很高htop,默认情况下不会显示。要显示它们,htop请进入SetupDisplay options然后单击,然后取消选中Hide kernel threads。这应该允许您查看负责的线程。

您还可以通过将设置hide_kernel_threads为0来禁用此行为~/.htoprc


2
谢谢克里斯。我这样做了,但是表值仍然是0%。也许这是在虚拟机中运行所特有的?主机是虚拟专用服务器(在Dreamhost.com上)。
马特·威尔基

对我来说,这是更正确的答案。我有一个进程占用了内核大量的CPU,并且没有出现在用户空间进程中。
Patrick Chu

...除了HTop CPU仪表以红色显示内核时间,以绿色显示用户时间外,我们可以清楚地看到它几乎全是绿色。
MathematicalOrchid

1

尝试开展htopsudo。您需要root用户访问权限才能查看表中的那些活动线程。


我不知道这在常规虚拟化环境下是否能正常运行,如果存在常规情况,但在Dreamhost VPS上则无法运行。
马特·威尔基
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.