平均负载高但 CPU 占用低

平均负载高但 CPU 占用低

我正在尝试追踪一台旧笔记本电脑(10 年,4GB 内存,2 核,Kubuntu 18.04)上的重复挂起现象。现在,在适度使用的情况下(在 Firefox 中打开的标签少于 10 个,一堆其他程序,没有什么大问题),这种情况每天都会发生几次。

有时我会遇到 OOM,但在大多数情况下,用户界面会停止运行一到三十分钟,然后一切恢复正常。这是最近发生的(过去 2 个月)。在大多数情况下,dmesg 或 syslog 中没有任何内容。

我一直试图诊断它,但没有成功,但我注意到 htop 的一件事是,平均负载跳转到 30 或更高,而累积 CPU 使用率保持在 10% 以下,内存使用率(Mem+Swap)保持在 4Gb 以下。

第一个问题:平均负载与 CPU 使用率怎么会如此不同?第二个问题:我还能做什么?我可以运行一些压力程序并希望获得有意义的信息吗?

[编辑] 仍在等待下一次崩溃,但我注意到 swapiness 为 0。默认情况下它不应该是 60 吗?

答案1

问题 1:平均负载和 CPU 使用率怎么会有这么大的差别?

在 Linux 和 Unix 中,平均负载都包括待处理进程。与 Unix 不同,在 Linux 中,平均负载包括 I/O 等待(例如等待磁盘读取或写入)和待处理进程。

让我们使用磁盘(长寻道时间)来演示高平均负载和低 CPU 使用率,通过让多个任务读取大文件中的随机扇区。系统因 I/O 等待而陷入困境。

系统几乎空闲:

doug@s15:~$ sudo turbostat --Summary --quiet --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 60
Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt GFXWatt
0.38    1806    27911   30      4.12    0.12
0.37    1858    27147   29      4.14    0.12

但平均负载非常高:

doug@s15:~$ uptime
 22:47:01 up 1 day, 13:36,  5 users,  load average: 49.00, 47.85, 34.30

问题2:我还能做什么?

您的症状听起来像是大量交换。您声称内存使用率很低,但我猜这并不总是正确的,有时您会进行大量交换,甚至有一次您完全耗尽了内存。

答案2

来自评论...

正如我所怀疑的,存在交换问题。在这种情况下,它根本没有交换。

对于 4G RAM,将 vm.swappiness 设置为 60(之前为 0 -这是一个完全错误的设置),从此以后就没再发生过一次挂起事件。

相关内容