使用 grub 启动参数时 CPU 在空闲时运行更热

使用 grub 启动参数时 CPU 在空闲时运行更热

因此,我的笔记本电脑在使用我的电脑时,无论是几分钟还是几个小时,都会随机“冻结崩溃”(系统完全没有响应、鼠标冻结、时钟不前进、键盘命令没有任何效果,唯一的解决方法是使用物理电源按钮进行硬重启。

因此,我自然而然地调查了这个问题并试图找到解决办法。查看内核日志后,我发现冻结前最后记录的事件是几个“硬件错误”:

kernel: mce: [Hardware Error]: Machine check events logged

于是我搜索了一下,试图找到解决方案。我确实找到了帖子。它基本上告诉我添加一些启动参数。它确实解决了这个问题,从那以后我再也没有记录任何硬件错误,也没有出现任何随机冻结。这些是启动参数:

noapic pci=assign-busses apicmaintimer idle=poll reboot=cold,hard

但问题是,现在使用这些启动参数时,我的笔记本电脑的空闲温度要高得多。大约 70 摄氏度,而不是 35-40 摄氏度。现在,显然我已经检查了系统监视器,看看是否有任何东西占用了 CPU 使用率,但什么也没有。它在所有 4 个线程上占用了 0 到 3% 的 CPU 利用率,没有什么不寻常的。

我知道是启动参数导致了这个问题,因为我尝试过移除它们,重启后,风扇不再那么大声旋转,并且它在正常温度下空转。但是,硬件错误又出现了,随机冻结也是如此。

我对 Linux 还很陌生,所以根本不知道这些启动参数有什么用。有经验的人能告诉我它们的作用是什么,以及为什么它们会导致我的 CPU 空闲时温度更高吗?

编辑#1

因此感谢 matigo 和 Doug 的帮助,他们告诉我该idle=poll参数正在禁用 CPU 的空闲系统,这显然会使 CPU 运行得更热并产生更多的废热。

删除该启动参数后,硬件错误又会出现。

所以,我的冻结和硬件错误似乎与 CPU 在空闲状态之间切换的方式有关。

我的 CPU 是英特尔酷睿 i7-7500U

这是运行的输出grep . /sys/devices/system/cpu/cpu0/cpuidle/state*/name

/sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL
/sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1
/sys/devices/system/cpu/cpu0/cpuidle/state2/name:C1E
/sys/devices/system/cpu/cpu0/cpuidle/state3/name:C3
/sys/devices/system/cpu/cpu0/cpuidle/state4/name:C6
/sys/devices/system/cpu/cpu0/cpuidle/state5/name:C7s
/sys/devices/system/cpu/cpu0/cpuidle/state6/name:C8
/sys/devices/system/cpu/cpu0/cpuidle/state7/name:C9
/sys/devices/system/cpu/cpu0/cpuidle/state8/name:C10

所以基本上我需要的帮助是这样的,如果可能的话,摆脱这些硬件错误和崩溃,而无需完全禁用 CPU 空闲系统。

答案1

启动参数idle=poll基本上禁用了空闲系统,使空闲成为无操作旋转周期。因此,是的,您会期望产生更多的废热,因为 CPU 永远不会进入休眠状态。

下面是我的测试服务器中使用 turbostat 的一个示例:

doug@s19:~$ sudo turbostat --Summary --quiet --show Busy%,Bzy_MHz,IRQ,PkgWatt,PkgTmp,RAMWatt,GFXWatt,CorWatt --interval 15
Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt CorWatt GFXWatt RAMWatt
0.01    938     558     36      1.34    0.68    0.00    0.89
0.02    800     455     36      1.33    0.67    0.00    0.89 <<< All idle states enabled
60.14   4799    109298  47      29.48   28.82   0.00    0.89 <<< transition sample
99.76   4800    180297  47      47.24   46.59   0.00    0.89 <<< All idle states disabled, except poll.
99.76   4800    180311  49      47.65   46.99   0.00    0.89
99.76   4800    180305  49      47.82   47.17   0.00    0.89

注意:intel_pstate CPU 频率调节驱动程序“认为” CPU 很忙,但 top 却不这么认为:

top - 19:23:43 up  7:14,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 214 total,   1 running, 213 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu8  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu9  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu10 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu11 :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  31936.7 total,  31137.0 free,    312.3 used,    487.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.  31227.9 avail Mem

相关内容