Kondemand 프로세스가 CPU의 대부분을 소비합니다.

Kondemand 프로세스가 CPU의 대부분을 소비합니다.

출력은 다음과 같습니다 top.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3551 mysql     20   0 10.0g  84m 4052 S  9.4  0.1 544:39.87 mysqld
 2311 root      20   0     0    0    0 R  3.1  0.0 184:36.36 kondemand/26
 2296 root      20   0     0    0    0 R  3.0  0.0 183:58.76 kondemand/11
 2297 root      20   0     0    0    0 R  3.0  0.0 183:51.36 kondemand/12
 2299 root      20   0     0    0    0 R  3.0  0.0 183:31.22 kondemand/14
 2304 root      20   0     0    0    0 R  3.0  0.0 183:57.42 kondemand/19
 2310 root      20   0     0    0    0 R  3.0  0.0 182:07.21 kondemand/25
 2312 root      20   0     0    0    0 R  3.0  0.0 184:01.70 kondemand/27
 2314 root      20   0     0    0    0 R  3.0  0.0 182:34.96 kondemand/29
 5255 root      20   0 84432  11m 2800 R  3.0  0.0  58:53.71 cPhulkd - proce
 2286 root      20   0     0    0    0 R  2.9  0.0 179:48.98 kondemand/1
 2298 root      20   0     0    0    0 R  2.9  0.0 183:01.25 kondemand/13
 2300 root      20   0     0    0    0 R  2.9  0.0 183:05.85 kondemand/15
 2302 root      20   0     0    0    0 R  2.9  0.0 181:37.64 kondemand/17
 2305 root      20   0     0    0    0 S  2.9  0.0 182:42.13 kondemand/20
 2313 root      20   0     0    0    0 S  2.9  0.0 183:37.13 kondemand/28
 3264 root      20   0  131m 6236 3712 R  2.9  0.0  13:49.84 cpsrvd (SSL) -
 2287 root      20   0     0    0    0 R  2.8  0.0 155:21.99 kondemand/2
 2289 root      20   0     0    0    0 R  2.8  0.0 181:43.40 kondemand/4
 2290 root      20   0     0    0    0 R  2.8  0.0 180:02.76 kondemand/5
 2293 root      20   0     0    0    0 R  2.8  0.0 179:04.75 kondemand/8
 2294 root      20   0     0    0    0 R  2.8  0.0 182:32.23 kondemand/9
 2295 root      20   0     0    0    0 R  2.8  0.0 184:39.21 kondemand/10
 2306 root      20   0     0    0    0 R  2.8  0.0 182:20.72 kondemand/21
 2307 root      20   0     0    0    0 R  2.8  0.0 182:39.74 kondemand/22
 2309 root      20   0     0    0    0 R  2.8  0.0 179:00.80 kondemand/24
 2315 root      20   0     0    0    0 R  2.8  0.0 182:54.88 kondemand/30
 2965 root      20   0  150m  35m 3464 R  2.8  0.1 177:45.39 httpd
 2291 root      20   0     0    0    0 R  2.7  0.0 180:53.41 kondemand/6
 2292 root      20   0     0    0    0 R  2.7  0.0 179:38.78 kondemand/7
 2303 root      20   0     0    0    0 R  2.7  0.0 184:05.13 kondemand/18
 2316 root      20   0     0    0    0 S  2.7  0.0 182:06.84 kondemand/31
18451 cuntschi  20   0  187m  12m 5608 R  2.7  0.0   0:00.29 php
 2285 root      20   0     0    0    0 R  2.6  0.0 176:55.27 kondemand/0
18430 cuntschi  20   0  186m  11m 4960 R  2.6  0.0   0:00.28 php
18445 cocksuck  20   0  175m 9332 5208 R  2.6  0.0   0:00.28 php
18459 romanced  20   0  184m   9m 4972 R  2.6  0.0   0:00.28 php
18463 sexsmovi  20   0  187m  13m 5512 R  2.6  0.0   0:00.28 php
18482 enterpri  20   0  185m  11m 5424 R  2.6  0.0   0:00.28 php
18488 enterpri  20   0  185m  12m 5456 R  2.6  0.0   0:00.28 php
 2301 root      20   0     0    0    0 R  2.5  0.0 178:52.97 kondemand/16
 2308 root      20   0     0    0    0 R  2.5  0.0 181:52.38 kondemand/23
18432 cuntschi  20   0  184m  10m 4956 R  2.5  0.0   0:00.27 php
18434 cocksuck  20   0  187m  12m 5796 R  2.5  0.0   0:00.27 php
18436 sexsmovi  20   0  186m  13m 5480 R  2.5  0.0   0:00.27 php
18439 cuntschi  20   0  184m 9868 4960 R  2.5  0.0   0:00.27 php

그것은 무엇이며 어떻게 중지합니까?

답변1

이는 자동 CPU 주파수 스케일링입니다. 사용중인 CPU가 실제로 유휴 CPU 인 것 같습니다. CPU 벤치마크 프로그램을 시작하여 이를 테스트할 수 있습니다. kondemand 인스턴스 사용량이 0%로 떨어지는 것을 볼 수 있습니다. 프로그램 atop은 CPU 확장 비율도 표시합니다.

배포판마다 이 문제를 다르게 처리합니다. 배포판을 게시하지 않았으므로 살펴보겠습니다.http://www.servernoobs.com/avoiding-cpu-speed-scaling-in-modern-linux-distributions-running-cpu-at-full-speed-tips/?doing_wp_cron=1428304535.5997378826141357421875출발점으로. 이 빠른 스크립트는 이 기능을 전체적으로 끄지만 실제로는 시스템의 시작 스크립트에서 수행되는 작업을 파악하고 싶을 것입니다.

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

어쩌면 전력을 절약하는 것보다 더 나쁜 것은 없을 수도 있습니다. 작업량이 매우 급증하는 경우가 아니라면 이 기능을 비활성화해도 추가 열을 얻을 수 없습니다(실제로 문제가 발생하지 않는 한).

답변2

귀하의 질문에 답하기 위해서는 먼저 kondemand가 무엇인지 이해해야 합니다.

kondemand는 사용 통계에 따라 시스템의 p-상태를 변경하는 cpufreq 하위 시스템의 ondemand 조정기에 속하는 커널 스레드입니다. 따라서 전원 관리에 도움이 됩니다. 참조요구

  • 이제 귀하의 질문은 왜 CPU를 사용합니까?

답변:귀하의 컴퓨터에는 32개의 코어가 있는 것 같습니다. 그래서 32개의 kondemand 스레드가 실행되고 있는 것입니다. 각 스레드는 CPU 주파수를 최적화하기 위해 약간의 CPU를 소비합니다. 이 CPU 사용량은 일반적으로 CPU가 유휴 상태일 때 발생합니다. 이런 점에서 kondemand는 cpufreq와 관련된 커널 스레드입니다. 그래서 전력을 절약하도록 설계되었습니다. 바쁜 시간에는 프로세서를 로드해서는 안 됩니다.

kondemand를 비활성화하려는 경우에도 아래 링크에 언급된 단계를 따르십시오.

위의 링크에는 귀하가 언급한 문제에 대한 좋은 설명이 있습니다. 또한 kondemand 비활성화/활성화의 영향을 확인할 수 있습니다.

커널 버전에 따라 kondemand를 비활성화하는 두 가지 방법이 있습니다. 어떤 버전의 커널을 사용하고 있는지 잘 모르겠습니다. 따라서 위의 링크를 확인하여 시스템에 설치된 커널 버전에 따라 필요한 조치를 취해야 합니다.

행운을 빌어요!

관련 정보