Ubuntu 随机冻结 - Windows 正常运行

Ubuntu 随机冻结 - Windows 正常运行

我有一台旧电脑,一直想在上面运行 Ubuntu,但它总是死机。Windows 运行完美,在高负载下可以正常运行数天,没有问题。这不是 19.10 独有的,我尝试过早期版本的 Ubuntu,结果相同。

冻结似乎是随机的。有时我可以玩火箭联盟一个小时而没有任何问题,几分钟后机器就会在桌面上空转或重启后 2 分钟冻结。我唯一确定的是,我找不到更频繁触发它的方法。

当它冻结时,它就是硬冻结。与计算机的 SSH 会话中断。键盘无响应,无法转到另一个控制台或打开/关闭大写锁定灯。

内存测试无故障。无高温。升级到最新主板 bios,无变化。跟踪 dmesg、内核和系统日志,未发现任何异常。

Hardware:
Intel i5 760
Gigabyte P55-USB3
Geforce GTX 670 2GB (Running 435 driver)
4x 4GB DDR3 1600
2x Samsung 830
IDE DVD/RW
Corsair HX750

我不知道如何进一步分析该问题,因为我从未看到任何错误/警告,并且找不到触发该问题的方法。

有什么方法我可以看到更多详细信息吗?

根据@K7AAY 的要求添加信息

我没有启用休眠模式,除非它默认启用。

free -m
              total        used        free      shared  buff/cache   available
Mem:          16004        1130       13883           3         990       14582
Swap:          2047           0        2047

答案1

我解决了这个问题。

该系统有轻微的超频,我忘了。超频本身没有问题,BIOS 中的设置 100% 稳定。

但是!现代 Linux 内核通过 Intel_idle 驱动程序覆盖了 Intel C 状态的 bios/uefi 设置。因此,原本应该从 bios 设置的 C 状态设置实际上在 Linux 中被覆盖了。

这就是导致随机冻结的原因,因为只要 C 状态不变,系统就非常稳定。这意味着它在重负载下工作正常,但一旦系统开始在空闲和轻负载之间切换,C 状态就会大幅波动并导致系统挂起。

我的解决方案是通过内核参数锁定 grub 中的 C 状态。GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=1"

相关内容