为什么 htop 仪表显示 >90%,而表格为 0.0%?

为什么 htop 仪表显示 >90%,而表格为 0.0%?

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

部分 htop 屏幕抓取

答案1

htop不知道它正在内核级虚拟化环境上运行(梦想主机VPS正在使用虚拟服务器技术)。然后,它会显示共享同一内核的所有操作系统实例(而不仅仅是您的操作系统实例)的 CPU 使用情况。

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

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

它可能通过总结虚拟服务器中运行的所有进程的 CPU 使用率来实现这一点,例如:

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

答案2

这种不一致通常表明内核线程的处理器使用率较高,htop默认情况下不会显示这些信息。要显示它们,请htop转至Setup,然后Display options转至 ,然后取消选中Hide kernel threads。这应该允许您看到负责的线程。

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

答案3

尝试使用htop启动sudo。您需要 root 访问权限才能查看表中的活动线程。

相关内容