Linux 负载非常高,进程低

Linux 负载非常高,进程低

运行 Linux 服务器,这不是第一次发生这种情况(而且仍然没有人在任何论坛上可以向我解释)

我正在使用 New Relic 监控我的服务器,因此它对使用率超过 80% 的情况发出了警报。我登录并运行了 htop。平均负载为 1.30,CPU 远远超过 100%。但是……没有进程占用 CPU%。占用最多的进程会上升到 5%,然后回到 0 或 2。

可能发生了什么事?:(

在此处输入图片描述

答案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 同步操作等),操作系统调度程序没有地方放置用户进程来运行,这是我们在当今几乎普遍使用对称多处理器機器。

相关内容