我从 2017 年开始使用华硕 X556UQ。这台笔记本电脑具有双启动功能,主要操作系统为 Windows 10 和 Ubuntu(当前版本为 22.04)。不幸的是,我的 Ubuntu 变得不可靠了。我遇到了 GUI 响应的随机延迟,更糟糕的是,Gnome(X11 和 Wayland)和 KDE 的 GUI 会话会定期崩溃。崩溃后我保存了很多日志,但我无法找出问题所在。NetworkManager 经常在崩溃后停止。有时我会失去鼠标和键盘。最近发生的一个事件非常典型。
我需要进行紧急在线交易。输入 URL 后,Firefox 被 OOM 杀手杀死。只有几个应用程序打开:Nautilus、一个终端窗口、一个带有几个小文件的文本编辑器和带有大约 30 个选项卡的 Firefox。我还以为 oomd 被禁用了。无论如何,Firefox 被杀死了。我重新启动了浏览器并开始交易。当 GNOME 消失时,我正在最后一页。我看到的不是 GUI,而是带有 GPM 鼠标指针的黑屏。我切换到虚拟终端并启动“top”。X11 不再存在。我转到登录屏幕。我可以看到屏幕,但笔记本电脑死机了,没有鼠标。没有键盘,没有网络。我只能强制关机。
我附上了 syslog 两天的信息。https://pastebin.com/qjgLCVJK 崩溃发生在 10 月 13 日。
我对这起事件有几个疑问。主要问题是如何研究 GUI 会话消失。(我已经提到过这种情况发生在 X11 和 Wayland 上的 GNOME 以及 X11 上的 KDE 上。)我还对 OOM 杀手有疑问,但那是另一个话题,我不会把它们混为一谈。我的问题是:
- 这可能是随机硬件问题。不过 Windows 10 似乎运行良好。有没有办法探索这样的问题?
- 视频驱动程序可能存在问题?笔记本电脑具有双视频、集成英特尔和 NVIDIA GPU。我只使用英特尔。Prime 设置为英特尔。这应该会停止 NVIDIA。我的 Ubuntu 以前使用英特尔卡运行非常稳定。英特尔驱动程序有任何变化吗?
- 这可能是由于内存不足造成的吗?还是内存管理问题?Windows 上的 30 个 Firefox 选项卡甚至不会减慢系统速度。然而,在我最近的案例中,当打开了两个以上的窗口时,oomd 杀死了 30 个选项卡的 FF。
添加有关我的笔记本电脑的信息。笔记本电脑有 8GB 的 RAM。我使用 8GB 交换文件来使休眠功能正常工作。我打印了 swapon 命令的输出如下
swapon -s
Filename Type Size Used Priority
/swapfile file 8388604 552600 -2
我注意到在 swapon 输出中,优先级是 -2,而根据手册,优先级范围应该是 -1 和 32767。“-2”是什么意思?
答案1
您需要交换空间!您描述的故障是没有交换空间的系统的典型故障。
使用交换空间来控制当程序分配了所有实际内存并需要更多内存时会发生什么。在所有可释放的缓存(某些缓存块“正在使用”,无法释放)释放后,系统进入内存不足状态。在内存不足的情况下,使用交换,某些任务的内存被写入磁盘,释放以供重用,然后在任务运行时返回到内存(交换)。如果没有交换,系统可能会冻结,可怕的 OOM-Killer(内核中硬编码的伪进程)运行,并选择一个进程来杀死,以释放内存。OOM-Killer 以不方便的选择而闻名。
系统休眠需要 RAM 大小的连续交换区域。
读man mkswap fallocate filefrag swapon fstab
。