答案1
看起来您的 htop 输出/配置中发生了多种情况,导致显示栏中报告的 100% CPU 利用率似乎与“无”相关。这是单核机器 (VM) 吗?
内核进程:
默认情况下,htop 不会在线程列表中显示内核进程(top 会显示)。您可以通过按Shift+来切换内核进程的显示k。由于该Tasks:
部分没有列出内核线程(kthr),因此很明显它们当前是隐藏的。
按 CPU 利用率排序:
您当前没有按 CPU 利用率排序的进程列表。按下 键F6并使用箭头键选择 PERCENT_CPU。这将允许您查看几乎肯定当前隐藏在视图之外(在列表底部)的进程,这些进程使用的 CPU 百分比不为零。
CPU利用率指标条:
内核进程未显示的一个线索是 CPU 条,它显示内核正在使用 (大约) 40% 的 CPU,我们可以通过 htop 提供的 CPU“视觉”表示中构成各个部分的颜色来判断。颜色定义如下:
系统范围的 CPU 使用率:
蓝色:低优先级进程(nice > 0)
绿色:普通(用户)进程。
红色:内核进程。
黄色:IRQ 时间。
洋红色:软 IRQ 时间。
灰色:IO 等待时间。
仍发现差异吗?
在回答一个类似的问题时,讨论了一种获取时间平均值而不是有效瞬时 CPU 利用率的方法服务器故障。收集这些数据并与 100% 的 CPU 利用率进行比较,可以让你更清楚地了解是什么“限制”了你的 CPU。同一问题的另一个答案提到了一个名为 atop 的工具,该工具对于分析一段时间内的 CPU 利用率以及 htop 主要提供的即时快照类型视图也非常有用。
单核
由于您的服务器似乎只使用一个核心运行,因此内核模式上下文变化的影响可能更为显著 - 当代码在内核上下文中运行时(中断、某些 IO 同步操作等),操作系统调度程序没有地方放置用户进程来运行,这是我们在当今几乎普遍使用对称多处理器機器。