Docker 서비스로 인해 CPU 사용량이 100% 발생함

Docker 서비스로 인해 CPU 사용량이 100% 발생함

최근 내 CPU가 매우 이상한 동작을 보이고 있습니다. 약 20개의 도커 서비스가 포함된 일반적인 설정을 실행할 때 눈에 띄게 속도가 느려지는 것을 발견했습니다. 내 노트북이 특별한 이유 없이 로드를 따라갈 수 없게 되어 약 2개월이 지났음에도 불구하고 업무에 거의 사용할 수 없는 것처럼 느껴집니다.

저는 문제를 해결하고 솔루션을 연구하는 데 많은 시간을 보냈습니다. 내 커널은 입니다 4.19.60-1-MANJARO. 나열된 거의 모든 것을 시도했습니다.CPU 주파수 스케일링ArchWiki 기사.

$ grep "model name" /proc/cpuinfo
model name      : Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz

거버너를 performance8개 코어 모두로 변경하고 cpupower허용되는 최저 주파수를 2.5GHz로 설정해 보기도 했습니다.

$ 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~900MHz로 조절되고 모든 코어에서 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

터보 모드가 활성화되었습니다:

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo 
0

/sys/module/processor/parameters/ignore_ppc1을 .

Ubuntu에서 이러한 테스트를 수행해 보았지만 정확히 동일한 결과를 얻었으므로 문제가 OS에만 국한된 것이 아니라고 생각됩니다. 몇 달 전의 Docker 버전을 사용하고 있는데 (로 18.09.8-ce, build 0dd43dd87f) 업그레이드해도 도움이 되지 않았습니다. 수십 개의 탭이 열려 있고 여러 개의 Chrome 인스턴스가 있는 무거운 IDE를 포함하여 CPU 사용량을 제한하지 않고 다른 모든 일반적인 작업을 실행할 수 있습니다.

현재로서는 아이디어가 부족하며 어떤 제안이라도 듣고 싶습니다! 감사합니다.

관련 정보