Ubuntu 18.04.1 没有热节流

Ubuntu 18.04.1 没有热节流

我有一台华硕笔记本电脑(X705UDR),并在其上安装了 ubuntu。但是,我遇到了一些负载过热的问题,经过一番调查,我发现,即使核心温度达到 90 摄氏度以上,它仍然会顺利地加速到 3.5-3.6 GHz(这是额定频率为 1.8GHz 的移动处理器),系统过热相当快(约 1-2 秒)。

我曾尝试安装 TLP 来看看它是否能改善问题,虽然它似乎有助于延长电池寿命,但如果我不小心,仍然会出现过热的情况。

我还注意到它有时仍会发生热节流,至少根据内核日志(来自 dmesg):

[ 2719.863917] CPU0: Core temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863918] CPU4: Core temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863919] CPU1: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863920] CPU3: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863921] CPU7: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863922] CPU5: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863923] CPU2: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863924] CPU6: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863926] CPU4: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.863933] CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)
[ 2719.864930] CPU7: Package temperature/speed normal
[ 2719.864931] CPU4: Core temperature/speed normal
[ 2719.864931] CPU0: Core temperature/speed normal
[ 2719.864932] CPU5: Package temperature/speed normal
[ 2719.864932] CPU1: Package temperature/speed normal
[ 2719.864933] CPU2: Package temperature/speed normal
[ 2719.864933] CPU6: Package temperature/speed normal
[ 2719.864934] CPU3: Package temperature/speed normal
[ 2719.864934] CPU4: Package temperature/speed normal
[ 2719.864935] CPU0: Package temperature/speed normal

不确定触发因素是什么,但它表明至少可以配置内核以正确执行此操作。我还注意到,在检查温度传感器时,它报告了有问题的高限值:

Package id 0:  +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +45.0°C  (high = +100.0°C, crit = +100.0°C)

我相当确定(从观察结果来看)crit 是硬件截止温度,但是 high 有点奇怪。这是 Linux 内核用来确定是否进行热节流的数字吗?如果是,我该如何更改它。如果不是,还有其他方法可以配置内核决定降低处理器核心时钟温度的温度吗?我在旧答案中找到了一些声称可以做到这一点的脚本,但如果可能的话,我宁愿不依赖这样的脚本。

作为临时措施,我发现我可以完全禁用涡轮增压。但是,这也会带来严重的性能损失,因此如果可能的话,我希望有一个更好的解决方案。

编辑:作为临时措施,我发现我可以降低英特尔 pstate 的 max_perf_pct 来限制其加速的程度。这限制了峰值性能,但确实解决了过热问题,而不会过多地牺牲持续性能。

相关内容