Ubuntu 22.04 系统负载非常高,可能与安装 Samba/CIFS 共享和内核 6.5.0-15 有关,为什么?问题始于 2024 年 1 月

Ubuntu 22.04 系统负载非常高,可能与安装 Samba/CIFS 共享和内核 6.5.0-15 有关,为什么?问题始于 2024 年 1 月

简短版本:在内核为 6.5.0-15-generic 的 22.04.3 系统上,我的系统负载非常高(负载为 17,有 4 个 CPU),无法查明原因。但这似乎与 LAN 上其他设备当前安装的 Samba/CIFS 共享数量有关。如果这是一个已知问题,而我通过谷歌搜索找不到,我真的很想在这里获得一些故障排除帮助或解决方法。 我找不到瓶颈,系统监控工具或 dmesg/journalctl 输出都无法显示负载为何如此之高。有什么想法吗?

更多背景和更长的版本:我有几个 Ubuntu 系统,从台式机到 Raspberry Pi 和其他单板计算机,运行的是 Ubuntu 22.04 LTS 或 20.04 LTS。几个月来,我没有碰过任何我怀疑可能相关的配置,但最近(2024 年 1 月)我注意到其中一个系统负载高得离谱,没有任何明显原因。重启后问题仍然存在。(这些系统都在运行unattended-upgrades,所以它们或多或少是最新的,但重启之间通常间隔数周,因此内核版本可能不同。)

我还注意到,在 Samba 共享崩溃后,我的桌面(8 核/16 线程 AMD CPU)的利用率非常高(> 16),但该问题在重新启动后消失了,无法重现它。

系统信息(我重现了错误的地方):Ubuntu 22.04.3 LTS,4 核,Intel Celeron J4105,8 GB RAM。:6.5.0-15-generic uname -a#15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC 星期五 1 月 12 日 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

测试及测试结果:我停止了所有高 CPU 或磁盘密集型进程,并测试了不同数量的已挂载 Samba 共享。在所有情况下,iostat报告avg-cpu %idle为 > 97(如果我不运行iotop,则运行后增加到%system2-3,运行后减少%idle到 90 左右)。iostat还报告磁盘%util< 1 且每秒几乎没有交易,也iotop没有显示任何内容,因此负载似乎与磁盘无关。htop显示没有进程(除iotop)使用 > 5% 的 CPU。Samba 共享已挂载,但未使用:lsof未列出/media/mnt(这些挂载点所在的位置)下的任何文件。

对我来说,这里的平均负载应该非常接近于零。但事实并非如此。

  • 已安装零 (0) 个 Samba 共享:负载约为 0.2。因此实际上为零。
  • 安装了两个 (2) Samba 共享,我的 LAN 上每个外部 Ubuntu 系统一个共享:负载约为 4。
  • 在我的 LAN 上,两个独立的系统上安装了四 (4) 个 Samba 共享:负载约为 8。
  • 通过 LAN 和 VPN 安装了十 (10) 个 Samba 共享到五个不同的系统:负载约为 17。

反例1:Raspberry Pi 4 运行 Ubuntu 20.04.06 LTS(即不是 22.04),uname -a显示“5.4.0-1100-raspi #112-Ubuntu SMP PREEMPT Fri Nov 24 15:35:17 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux”,并且安装了 20 个活动 Samba 共享,负载约为 0.2。同样,几乎为零。

反例2:我的台式机运行的是 Ubuntu 22.04.3 LTS(与上面的系统相同,但采用 AMD CPU),显示uname -a“6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux”,并且安装了 16 个活动 Samba 共享,负载约为 0.3。同样,几乎为零。

笔记:我刚刚注意到,两个 x86_64 系统上的内核版本不一样。但查看 /boot,它们都在 1 月 12 日安装了 6.5.0-15。所以我想我可以重新启动桌面并选择 6.5.0-15 内核,看看问题是否也出现在桌面上。

我还测试过其他东西:cifs通过谷歌搜索,有些人似乎通过在 中的行中添加“vers=3.0”来获得更好的 Samba 性能/etc/fstab。我尝试了有和没有的两种方法,但没有看到任何区别。重新启动也没有帮助。

欢迎就前进的方向提出建议...

编辑:我确实重新启动了桌面并在 Grub 中选择了 6.5.0-15-generic 内核(uname -a:“6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux”),并安装了 16 个 Samba 共享:系统负载跳升至 27 - 但系统似乎和以前一样灵敏。

我的结论是,当挂载 Samba 共享时,6.5.0-15-generic 内核会错误地报告负载。

但下一步该怎么做?除了固定旧内核外,如何缓解这个问题?在哪里报告错误?

答案1

我不知道根本原因,但现在几周后,内核已升级到6.5.0-26-generic #26~22.04.1-Ubuntu,负载再次恢复正常。自上述评论以来,我没有进行任何配置更改。

我只能假设在 6.5.0-15 或之前存在一个内核错误,该错误在 6.5.0-26 版本发布之前已经修复。

相关内容