答案1
如果您的主板 BIOS 中有它(我有一块华硕 Prime X370 Pro 主板),请尝试禁用 C6 电源功能并将其从自动设置为手动。
如果您的 BIOS/UEFI 中没有该选项,则可以使用内核选项。但是您需要检查这是否适合您的内核版本,因为较新的内核版本已禁用部分或全部此功能(据报道 CONFIG_RCU_NOCB_CPU_ALL 已消失,但可能通过内核调试功能重新引入:应该启用 RCU_NOCB_CPU,以及启用 RCU_NOCB_CPU 的 RCU_EXPERT 内核选项 - 如果没有这些 CPU 选项,就无法使用软件解决方法)。
因此,在 12 线程 CPU 的内核命令行中(如果您无法在 BIOS/UEFI 中禁用 C6 功能):
rcu_nocbs=0-11
对于 16 线程 CPU:
rcu_nocbs=0-15
本质上,据我了解,Linux 要求系统过度降低 CPU 的电压,并且主板会允许它这样做,从而导致 Linux 锁定。
症状包括:键盘/鼠标输入不可靠,屏幕上显示的内容会冻结,系统对 ssh 没有响应,但仍然可以 ping。如果有声音播放,则音频缓冲区的最后一个部分将播放出来,重复 2-3 次,然后停止。/var/log/messages 中没有任何内容。这种情况可能每月发生一两次。在完全不可预测的时间 - 通常在我上网时。
如果可以,请尝试在主板 BIOS/UEFI 中禁用此功能,因为硬件不应该允许系统将功率降低到如此低。软件内核选项很复杂,因为它取决于内核更改。
这个问题困扰了我好几年,但我太忙了,而且它出现得不够频繁,我没时间去解决它。本周经过 2.5 小时的 FSCK,我受够了。自从禁用 UEFI 中的功能后,问题就没再出现过。
答案2
来自评论...
您可以咨询 AMD,因为他们因 Linux 问题召回了一些 Ryzen 处理器。请参阅这错误报告。
我查看了那份冗长的错误报告,发现软件解决方案到处都是……有些运气好……有些运气不好。我会联系 AMD,看看他们是否会更换你的处理器。