Linux 中的热节流计数器和包功率限制通知的含义

Linux 中的热节流计数器和包功率限制通知的含义

每当我在安装了 Linux 的 MacBook Pro 上进行一些性能测试时,我经常在 dmesg 中看到以下消息:

Aug  8 09:29:31 infinity kernel: [79791.789404] CPU1: Package power limit notification (total events = 40365)
Aug  8 09:29:31 infinity kernel: [79791.789408] CPU3: Package power limit notification (total events = 40367)
Aug  8 09:29:31 infinity kernel: [79791.789411] CPU2: Package power limit notification (total events = 40453)
Aug  8 09:29:31 infinity kernel: [79791.789414] CPU0: Package power limit notification (total events = 40453)

我还看到 sysfs 中的节流计数器随着时间的推移而增加:

trustin@infinity:/sys/devices/system/cpu/cpu0/thermal_throttle
$ ls
core_power_limit_count  package_power_limit_count
core_throttle_count     package_throttle_count
$ cat core_power_limit_count 
0
$ cat core_throttle_count 
41912
$ cat package_power_limit_count 
67945
$ cat package_throttle_count 
67565

这些计数器代表什么意思?

它们会影响 CPU 或系统的性能吗?它们会导致性能数字偏差增加吗?(即它们会阻止我获得可靠的性能数字吗?)

如果是,我该如何避免这些消息和增加计数器?在冷却良好的台式机系统上运行性能测试会有帮助吗?

答案1

当内核节流时,意味着内核速度减慢(电压降低,频率降低)以减少产生的热量(热量来自功率,功率与频率的平方成正比)。我猜封装节流意味着内核所在的硅片过热(而不是内核本身),因此电压再次降低。

这肯定会对性能产生负面影响。

避免的方法是 (a) 不要运行这种计算量大的应用程序(至少不要同时运行所有应用程序),(b) 检查冷却机制(风扇等)是否正常工作,以及 (c) 在较凉爽的环境中操作机器。对于你的情况,这些方法可能都不可行/无法修复/无法解决。

相关内容