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

tru*_*tin 8 linux cpu performance

每当我在安装 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)
Run Code Online (Sandbox Code Playgroud)

我还看到 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
Run Code Online (Sandbox Code Playgroud)

这些计数器是什么意思?

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

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

adr*_*min 3

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

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

避免的方法是 (a) 不要运行此类计算量大的应用程序(至少不是一次全部运行),(b) 检查您的冷却机制(风扇等)是否正常工作,以及 (c) 在较凉爽的环境中运行您的计算机。在您的情况下,这些可能都不可行/可修复/损坏。