最近闲鱼买个二手倍控8505 安装PVE 老是死机,坑死我了,最后搜索发现是普遍现象。感谢 恩山论坛的 大佬 KeShih 测试总结
原因
倍控 8505 在低负载(比如待机)时死机。通过排查,问题根源就是 CPU 的 C-State 电源管理功能。
C-State 是什么? 简单说,就是 CPU 的 "睡眠" 状态。C0 是完全清醒(满负载),C1 是浅睡,C6、C8、C10 就是深度睡眠。数字越大,睡眠越深,功耗越低,但从睡眠中唤醒的时间也越长。
问题原因:在某些特定的硬件(比如倍控 8505 的主板和 BIOS 组合)上,Linux 内核在尝试让 CPU 进入某些深度睡眠状态(比如 C6 或更深)时,可能会出错,导致系统无法唤醒,也就是我们看到的 "死机"
初步解决方案: 采用 intel_idle.max_cstate=1
效果:问题解决了,系统不再死机。
副作用:CPU 主频一直很高,无法进入深度睡眠,导致发热增加和功耗上升。这就是你现在遇到的情况。
后续优化:
倍控 8505 其实支持 POLL, C1E, C6, C8, C10 这些 C-State。intel_idle.max_cstate=1 限制得太死了。
最终解决方案
shell
限制 Intel CPU 的深度睡眠状态,从而解决随机冻结问题。
sudo nano /etc/default/grub
#修改前:
#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#修改后:
#GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_idle.max_cstate=2"
sudo update-grub
reboot
将参数调整为 intel_idle.max_cstate=2。
为什么是 2? C1E 是一种比 C1 更深一点的节能状态,但又远不如 C6 深。这个状态既解决了死机问题,又提供了不错的节能效果。
温度:降低到了 30 度左右(非常凉爽)功耗:待机功耗降到了 15-17W