Docker服务导致CPU使用率100%

Docker服务导致CPU使用率100%

最近,我的 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 的多个实例。

此时我已经没有想法了,我很想听到任何建议!多谢。

相关内容