诊断导致 Linux 系统负载的原因

诊断导致 Linux 系统负载的原因

我理解系统负载是内核使用情况,例如 IO 或网络。如果您认为这两个项目的负载都不高,那么有什么建议的步骤可以追踪导致系统负载过高的原因?我们正在安装“dstat”,并将发布更多负载测试的结果。

我们通过 sar 查看了 system% 列下的负载。用户负载正常,系统整体 CPU 使用率约为 50-70%。

提前致谢

答案1

高负载但不高 CPU 使用率通常是由 I/O 引起的,而且主要是由块设备(硬盘)引起的。现在,您的程序可能会大量读取/写入块设备,因为它们没有经过优化,或者因为您的系统内存不足。

您可以使用命令行程序“free”来查看您的内存消耗情况:

% free -otm
             total       used       free     shared    buffers     cached
Mem:         31728       2057      29670          0         65        733
Swap:            0          0          0
Total:       31728       2057      29670

如果您正在交换,那可以解释负载。

接下来,您可以使用“atop”。Atop 是“高级 top”。以 1 秒的间隔启动它(默认为 10 秒),并按磁盘使用情况对进程进行排序:

atop -D 1

Atop 会将瓶颈资源标为红色,因此它通常会立即显示导致负载的原因。

相关内容