最近,我的 CPU 出现了一种非常奇怪的行为。我注意到在运行我的典型设置(其中包括大约 20 个 docker 服务)时速度明显减慢。感觉我的笔记本电脑变得无法跟上负载,似乎没有什么特殊原因,导致它几乎无法用于工作,尽管它已经使用了大约 2 个月。
我已经花费了大量时间进行故障排除并研究解决方案。我的内核是4.19.60-1-MANJARO
,我几乎尝试了列出的所有内容CPU频率缩放ArchWiki 的文章。
$ grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
我将调速器更改为performance
所有八个核心,cpupower
甚至尝试将允许的最低频率设置为 2.5 GHz。
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance
空闲时,系统看起来如预期:
$ sudo i7z
Real Current Frequency 3367.10 MHz [99.94 x 33.69] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp VCore
Core 1 [0]: 3367.10 (33.69x) 3.04 11.7 1 14.5 67.1 48 1.1041
Core 2 [1]: 3005.90 (30.08x) 2.49 7.09 1 4.53 83.2 47 1.1041
Core 3 [2]: 3109.65 (31.11x) 1 3.15 1 1 93.3 49 1.1042
Core 4 [3]: 3280.22 (32.82x) 4.97 6.89 1 4.18 78.9 48 1.1040
然而,执行一个简单的操作systemctl start docker
——即甚至不运行任何 docker 容器 — 会立即将 CPU 降频到 700-900 MHz 左右,并导致所有核心的 CPU 使用率达到 100%。
$ sudo systemctl start docker && i7z
Max Frequency without considering Turbo 1898.94 MHz (99.94 x [19])
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 39x/38x/37x/37x
Real Current Frequency 945.70 MHz [99.94 x 9.46] (Max of below)
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % C7 % Temp VCore
Core 1 [0]: 945.63 (9.46x) 99.9 47.5 0 0 0 52 0.6639
Core 2 [1]: 945.65 (9.46x) 99.9 47.5 0 0 0 51 0.6642
Core 3 [2]: 945.68 (9.46x) 99.9 47.5 0 0 0 53 0.6641
Core 4 [3]: 945.70 (9.46x) 99.9 47.5 0 0 0 51 0.6641
立即停止该服务会使 CPU 恢复正常状态。
附加频率信息:
$ cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 3.90 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 2.50 GHz and 3.90 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 3.23 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
Turbo 模式已启用:
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
我什至尝试通过将值设置为/sys/module/processor/parameters/ignore_ppc
来忽略 BIOS 频率限制1
。
我尝试在 Ubuntu 下执行这些测试并得到了完全相同的结果,这让我认为问题不是特定于操作系统的。我使用的是几个月前的 Docker 版本,升级(到18.09.8-ce, build 0dd43dd87f
)没有帮助。我可以在不限制 CPU 使用率的情况下运行所有其他常用工作,包括打开了数十个选项卡的重型 IDE 和 Chrome 的多个实例。
此时我已经没有想法了,我很想听到任何建议!多谢。