CentOS 6.4를 사용하고 있으며 kipmi0
CPU는 99.8%, 메모리는 0.0%, 로드 평균은 1.00을 보이고 있습니다. 이를 바로잡기 위해 우리는 어떤 조치를 취해야 합니까?
답변1
~에 따르면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 커널 모듈에 대한 옵션을 구성하면 됩니다. Internet Explorer 에서 파일을 생성
하고 다음 콘텐츠를 추가합니다. 이제 ipmi_si 커널 모듈이 커널에 로드될 때마다 이 매개변수가 자동으로 올바르게 설정됩니다./etc/modprobe.d/
/etc/modprobe.d/ipmi.conf
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
답변2
디버깅 문제
다른 시스템도 이 시스템과 동일합니까? 당신은 그들이 있는지 확인해야합니다. 그들 사이에는 근본적으로 다른 것이 있어야합니다. 펌웨어? 동일한 RPM 버전인가요?
lshw
, , 등의 도구를 사용 dmidecode
하고 dmesg
로그 보기를 통해 불일치 및 근본 원인에 대한 단서를 찾을 수 있습니다.
이 문제가 없는 시스템과 문제가 있는 시스템 중 하나에서 이 명령을 실행하여 설치된 RPM의 좋은 기준을 얻을 수 있으며, 패키지 목록을 비교하여 모두 동일한 버전인지 확인할 수 있습니다.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
그런 다음 동일한 시스템에서 파일을 가져오고 두 파일을 모두 sdiff합니다.
sdiff machine1_rpms.txt machine2_rpms.txt
잠재적 원인 #1
IBM 웹 사이트의 기술 노트 제목은 다음과 같습니다.Kipmi0은 Linux에서 CPU 사용률이 증가한 것으로 나타날 수 있습니다.,이 문제에 대해. 이 질문에 따르면 기본적으로 이 문제를 무시할 수 있습니다.
문제 설명
Linux의 kipmi0 프로세스는 CPU 사용률이 증가한 것으로 나타날 수 있습니다. BMC(베이스보드 관리 컨트롤러) 또는 IMM(통합 관리 컨트롤러)과 같은 IPMI(지능형 플랫폼 관리 인터페이스) 장치가 사용 중이거나 응답하지 않으면 활용도가 100%로 증가할 수 있습니다.
고정시키다
고칠 필요가 없습니다. CPU 사용률 증가는 실제 시스템 성능에 영향을 주지 않으므로 무시해야 합니다.
해결책
- IPMI 장치를 사용하는 경우 BMC를 재설정하거나 시스템을 재부팅하십시오.
IPMI 장치를 사용하지 않는 경우 다음 명령을 실행하여 IPMI 서비스를 중지하십시오.
서비스 IPMI가 중지되었습니다
잠재적인 솔루션 #2
누군가의 블로그에서 다음과 같은 간단한 제목의 기사를 발견했습니다.kipmi0 문제. 이 문제는 당신과 같은 것 같습니다. 이 문제는 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
답변3
ipmi_si.force_kipmid=0
kipmi0은 커널 매개변수로 추가하여 CentOS 6에서 완전히 비활성화할 수 있습니다.
부팅할 커널을 강조 표시하고 "a"를 눌러 매개변수를 수정하고 추가하여 GRUB 부팅 화면에서 테스트합니다.ipmi_si.force_kipmid=0
관련 커널 라인에 추가하여 ipmi_si.force_kipmid=0
영구적으로 만듭니다./boot/grub/grub.conf
참고: ipmi_si가 별도의 커널 모듈로 포함된 배포판에서는 modprobe.d conf 파일을 사용하는 것이 더 적합합니다. CentOS에서는 ipmi_si가 커널 이미지에 내장되어 있으므로 modprobe 구성은 효과가 없습니다.
답변4
이 문제를 해결하는 데 도움이 되는 다음을 찾았습니다.
ipmitool bmc info
이는 IPMI를 깨운 다음 코어의 100% 사용을 중지하는 것 같습니다.
또한 다음 내용도 도움이 되었습니다.
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
또한 과거에는 다음과 같은 방법으로 일부 서버의 CPU 사용량 100% 문제를 해결할 수 있었습니다.
ipmitool lan print
그리고
ipmitool bmc reset cold
그러나 최근 경험에 따르면 위 옵션을 사용하면 ipmitool
응답이 없고 그대로 앉아 Ctrl+ C를 하게 됩니다.
이것이 누군가에게 도움이 되기를 바랍니다.