我理解系统负载是内核使用情况,例如 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 会将瓶颈资源标为红色,因此它通常会立即显示导致负载的原因。