centos 6.4에서 최대 99.8 % CPU를 먹는 Kipmi0


15

우리는 CentOS 6.4를 가지고 kipmi0있으며 99.8 % CPU 및 0.0 % 메모리로 표시하고로드 평균은 1.00입니다. 이 문제를 해결하려면 어떻게해야합니까?



2
@ 이전에 읽었으므로 무시해야한다고 무시하지만 다른 컴퓨터에는이 문제가없는 것입니까?
biz14

다른 시스템이이 시스템과 동일합니까? 그것들이 맞는지 확인해야합니다. 그들 사이에는 근본적으로 다른 것이 있어야합니다. 펌웨어? 같은 RPM 버전?
slm

@ 네, 같은 centos를 가진 두 개의 동일한 머신이 있습니다. 6.4 지금 무엇을 찾아야합니까?
biz14

의 출력을 비교 lshw하고 dmidecode조사하는 내 옆에있는 지역이 될 것입니다.
slm

답변:


5

문제 디버깅

다른 시스템이이 시스템과 동일합니까? 그것들이 맞는지 확인해야합니다. 그들 사이에는 근본적으로 다른 것이 있어야합니다. 펌웨어? 같은 RPM 버전?

당신은 같은 도구를 사용할 수 있습니다 lshw, dmidecode그리고보고 dmesg무엇을 달라 어떤 것이 근본 원인이다에 대한 단서에 대한 로그를.

이 문제를 나타내지 않는 시스템 중 하나와 패키지 목록을 비교하고 모두 동일한 버전인지 확인하기 위해이 명령을 실행하여 설치된 RPM의 좋은 기준을 얻습니다.

 # machine #1
 $ rpm -aq | sort -rn > machine1_rpms.txt

 # machine #2
 $ rpm -aq | sort -rn > machine2_rpms.txt     

그런 다음 동일한 시스템에서 파일을 가져 와서 두 파일 중 하나를 수행하십시오.

 sdiff machine1_rpms.txt machine2_rpms.txt

잠재적 인 원인 # 1

IBM 웹 사이트에는 이 문제와 관련하여 기술 정보 제목이 Kipmi0 May Linux 에서 증가 된 CPU 사용률을 표시 할 수 있습니다. 이 문제에 따르면 본질적으로 문제를 무시할 수 있습니다.

문제 설명

kipmi0 프로세스는 Linux에서 CPU 사용률이 증가한 것으로 표시 될 수 있습니다. BMC (Baseboard Management Controller) 또는 IMM (Integrated Management Controller)과 같은 IPMI (Intelligent Platform Management Interface) 장치가 사용 중이거나 응답하지 않으면 사용률이 100 %까지 증가 할 수 있습니다.

고치다

수정이 필요하지 않습니다. 실제 시스템 성능에는 영향을 미치지 않으므로 증가 된 CPU 사용률은 무시해야합니다.

해결 방법

  1. IPMI 장치를 사용하는 경우 BMC를 재설정하거나 시스템을 재부팅하십시오.
  2. IPMI 장치를 사용하지 않는 경우 다음 명령을 실행하여 IPMI 서비스를 중지하십시오.

    서비스 ipmi 중지

잠재적 인 해결책 # 2

kipmi0 problem 이라는 제목의 누군가 블로그 에서이 게시물을 발견했습니다 . 이 문제는 귀하와 동일하게 들렸습니다. 이 문제는 lm_sensors패키지의 일부로로드 된 2 개의 커널 모듈 관련 문제로 추적되었습니다 .

다음은 2 개의 커널 모듈입니다.

  • ipmi_si
  • ipmi_msghandler

해결 방법

다음 명령으로이를 수동으로 제거 할 수 있습니다.

rmmod ipmi_msghandler
rmmod ipmi_si

이 수정 사항을 영구적으로 유지하려면 다음 lm_sensors과 같이 주석 처리 하여 구성 파일 중 하나 내에서 이러한 특정 커널 모듈의로드를 비활성화해야합니다 .

# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp

lm_sensors다음과 같이 변경 한 후 다시 시작하십시오 .

/etc/init.d/lm_sensors

웹 사이트와 내 시스템 모두 에서이 파일 / etc / sysconfig / lm_sensors를 찾지 못했습니다. 첫 번째 파일에서 정렬 할 때 재미있는 것이 Asc이지만 두 번째 파일은 desc입니까? 둘째, 차이를 파일로 출력하는 방법. 예, 꽤 많은 차이가 있습니다.
biz14

예, 이제 두 번째로 그에 따라 내림차순으로 정렬되었습니다. grep "|"사용법을 알려 드릴 수 없습니다. 이 문제를 해결하려면 어떻게해야합니까?
biz14

내가 말한 것은이 작업을 수행하는 것입니다 : sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"2 .txt 파일의 모든 차이점을 제거합니다. 다른 방법이 있지만 그 방법 중 하나입니다.
slm

이 명령을 실행 한 결과는 다음과 같습니다. sdiff 12_rpms.txt 11_rpms.txt | grep "|" perl-DBI-1.609-4.el6.x86_64 | perl-Digest-SHA-5.47-131.el6_4.x86_64. 12_rpms는 문제가있는 기계이고 다른 하나는 문제가없는 기계입니다. 그러나 수동으로 12_rpms에 247 줄이 있고 11_rpms에 263 줄이 있지만 sdiff는 하나입니까? 이 차이에 근거하여 다음 단계는 무엇입니까?
biz14

이 파일들도 pastebin.com 에 게시하십시오 .
slm

24

IPMI 문서 에 따르면 :

이 스레드는 인터페이스 성능에 따라 많은 CPU를 사용할 수 있습니다. 이로 인해 많은 CPU가 낭비 될 수 있으며 유휴 CPU 감지 및 추가 전원 사용과 관련된 다양한 문제가 발생할 수 있습니다. 이를 피하기 위해 kipmid_max_busy_us는 틱을 위해 잠자기 전에 kipmid가 회전하는 최대 시간을 마이크로 초 단위로 설정합니다. 이 값은 성능과 CPU 낭비 사이의 균형을 설정하며 필요에 따라 조정해야합니다. 아마도 언젠가는 자동 튜닝이 추가 될 것이지만, 이는 간단한 일이 아니며 심지어 자동 튜닝도 사용자가 원하는 성능으로 조정해야합니다.

따라서 kipmid_max_busy_us 매개 변수를 설정하기 위해이 명령을 실행할 수 있습니다.

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

이 시스템에서이 매개 변수를 설정 한 후 kipmi0의 CPU는 15 %로 감소했습니다.

당신은 이것을 시도 할 수 있습니다.

변경 사항을 영구적으로 유지하려면 ipmi_si 커널 모듈에 대한 옵션을 구성 할 수 있습니다. , 즉
파일을 만들고 다음 내용을 추가하십시오. 이제 ipmi_si 커널 모듈이 커널에로드 될 때마다 매개 변수가 자동으로 올바르게 설정되어야합니다./etc/modprobe.d//etc/modprobe.d/ipmi.conf
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100


이것이 정답 일 수도 있지만 SE 링크에서는 답변의 일부로 추론을 설명하고 외부 링크를 인용하는 것이 최선의 방법으로 간주됩니다. 이렇게하면 외부 링크가 기능을 상실하더라도 여기에서 논리 및 추론을 볼 수 있습니다.
Drav Sloan

영구적으로 적용되는 표준 방법이 있습니까?
tgharold

CentOS / RHEL에서 해당 명령은 /etc/rc.d/rc.local에 추가하여 영구적으로 만들 수 있습니다. rc.local은 다른 모든 init 스크립트 이후에 실행됩니다.
tgharold

1

ipmi_si.force_kipmid=0커널 매개 변수로 추가하여 CentOS 6에서 kipmi0을 완전히 비활성화 할 수 있습니다.

GRUB 부팅 화면에서 부팅하려는 커널을 강조 표시하고 'a'를 눌러 매개 변수를 수정하고 추가하십시오. ipmi_si.force_kipmid=0

ipmi_si.force_kipmid=0관련 커널 라인 을 추가 하여 영구적으로 만듭니다 ./boot/grub/grub.conf

참고 : ipmi_si를 별도의 커널 모듈로 사용하는 배포판에서는 modprobe.d conf 파일을 사용하는 것이 더 적합합니다. CentOS에서는 ipmi_si가 커널 이미지에 내장되어 있으므로 modprobe 구성이 작동하지 않습니다.


1

CentOS 6에는 커널에서 ipmi 드라이버가 컴파일되어 있습니다. ipmi 지원이 필요하지 않으면 grub.conf를 비활성화하십시오.

ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0

1

이 문제에 도움이되는 내용은 다음과 같습니다.

ipmitool bmc info

이것은 IPMI를 깨운 다음 ​​코어의 100 % 사용을 중지합니다.

나는 또한 다음과 같은 도움이되었다.

echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us

또한 과거에는 다음과 같은 방법으로 일부 서버에서 100 % CPU 사용량을 해결할 수있었습니다.

ipmitool lan print

ipmitool bmc reset cold

그러나 가장 최근의 경험에서 위의 옵션은 ipmitool응답하지 않고 거기에 앉아 Ctrl+ + C하도록했습니다.

잘하면 이것은 누군가를 돕는다.


해야 할 문제가 echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us있습니까?
Qian Chen

0

나는 CentOS 7을 실행하고 무엇이 그것을 차지하고 있는지 알아 내려고 노력했습니다.

저에게는 필자가 작성한 스크립트 나 다른 것에서 실행되는 Supermicro의 "ipmicfg"였습니다. 방금 pkilled하고 kipmi0 사용법이 사라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.