Mamy CentOS 6.4 i kipmi0
pokazuje jako 99,8% procesora i 0,0% pamięci, a średnia wartość obciążenia wynosi 1,00. Co powinniśmy zrobić, aby to naprawić?
lshw
i dmidecode
będą moimi następnymi obszarami do zbadania.
Mamy CentOS 6.4 i kipmi0
pokazuje jako 99,8% procesora i 0,0% pamięci, a średnia wartość obciążenia wynosi 1,00. Co powinniśmy zrobić, aby to naprawić?
lshw
i dmidecode
będą moimi następnymi obszarami do zbadania.
Odpowiedzi:
Czy inne systemy są identyczne z tym systemem? Musisz ustalić, że są. Musi być coś zasadniczo odmiennego między nimi. Firmware? Te same wersje RPM?
Można użyć narzędzi, takich jak lshw
, dmidecode
i patrząc w dmesg
dzienniku wskazówek co do tego, co jest inaczej, a co przyczyną.
Dostałbym dobrą linię bazową zainstalowanych RPMów, uruchamiając to polecenie na jednym z systemów, w których nie występuje ten problem, i na tym, który jest, i porównuję listy pakietów, aby upewnić się, że wszystkie są w tej samej wersji.
# machine #1
$ rpm -aq | sort -rn > machine1_rpms.txt
# machine #2
$ rpm -aq | sort -rn > machine2_rpms.txt
Następnie pobierz pliki na ten sam komputer i wykonaj sdiff z 2 plików:
sdiff machine1_rpms.txt machine2_rpms.txt
Witryna IBM nosi tę notkę techniczną: Kipmi0 May wykazuje zwiększone wykorzystanie procesora w systemie Linux w związku z tym problemem. Zgodnie z tym problemem można zasadniczo zignorować problem.
opis problemu
Proces kipmi0 może wykazywać zwiększone wykorzystanie procesora w systemie Linux. Wykorzystanie może wzrosnąć do 100%, gdy urządzenie IPMI (inteligentny interfejs zarządzania platformą), takie jak BMC (kontroler zarządzania płytą główną) lub IMM (zintegrowany kontroler zarządzania), jest zajęte lub nie odpowiada.
Naprawić
Nie wymaga naprawy. Należy zignorować zwiększone wykorzystanie procesora, ponieważ nie ma to wpływu na rzeczywistą wydajność systemu.
Obejść
Jeśli nie używasz urządzenia IPMI, zatrzymaj usługę IPMI, wydając następujące polecenie:
usługa ipmi stop
Znalazłem ten post na czyimś blogu pod tytułem: problem z kipmi0 . Ten problem brzmiał identycznie jak twój. Problem został przypisany do problemu z 2 modułami jądra, które były ładowane jako część lm_sensors
pakietu.
Były to 2 moduły jądra:
Obejść
Możesz je ręcznie usunąć za pomocą następujących poleceń:
rmmod ipmi_msghandler
rmmod ipmi_si
Aby ta poprawka stała się trwała, musisz wyłączyć ładowanie tych konkretnych modułów jądra w jednym z lm_sensors
plików konfiguracyjnych, komentując je w następujący sposób:
# /etc/sysconfig/lm_sensors
# MODULE_0=ipmi-si
# MODULE_1=ipmisensors
# MODULE_2=coretemp
Uruchom ponownie lm_sensors
po wprowadzeniu tych zmian:
/etc/init.d/lm_sensors
sdiff machine1_rpms.txt machine2_rpms.txt | grep "|"
wyciągnę wszystkie różnice między dwoma plikami .txt. Istnieją inne sposoby, aby to zrobić, ale to jeden sposób.
Zgodnie z dokumentem IPMI :
ten wątek może zużywać dużo procesora w zależności od wydajności interfejsu. Może to zmarnować dużo procesora i powodować różne problemy z wykrywaniem bezczynności procesora i zużyciem dodatkowej mocy. Aby tego uniknąć, kipmid_max_busy_us ustala maksymalny czas (w mikrosekundach), w którym kipmid będzie się kręcił przed snem po tyknięciu. Ta wartość określa równowagę między wydajnością a marnotrawstwem procesora i musi być dostosowana do twoich potrzeb. Być może kiedyś zostanie dodane automatyczne dostrajanie, ale to nie jest prosta rzecz, a nawet automatyczne dostrajanie wymagałoby dostosowania do pożądanej wydajności użytkownika.
Możemy więc wykonać to polecenie, aby ustawić parametr kipmid_max_busy_us:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
W naszym systemie, po ustawieniu tego parametru, procesor kipmi0 spadł do 15%.
Możesz tego spróbować.
Aby zmiany były trwałe, możesz skonfigurować opcje dla modułu jądra ipmi_si.
Utwórz plik /etc/modprobe.d/
, tj. /etc/modprobe.d/ipmi.conf
I dodaj następującą treść:
Teraz za każdym razem, gdy moduł jądra ipmi_si jest ładowany do jądra, parametr powinien być ustawiony automatycznie i poprawnie.
# Prevent kipmi0 from consuming 100% CPU
options ipmi_si kipmid_max_busy_us=100
kipmi0 można całkowicie wyłączyć na CentOS 6, dodając ipmi_si.force_kipmid=0
jako parametr jądra
Przetestuj na ekranie rozruchowym GRUB-a, zaznaczając jądro, które chcesz uruchomić, naciśnij „a”, aby zmodyfikować parametry i dołączyć ipmi_si.force_kipmid=0
Ustaw na stałe, dołączając ipmi_si.force_kipmid=0
do odpowiednich linii jądra w/boot/grub/grub.conf
UWAGA: W dystrybucjach, które mają ipmi_si jako oddzielny moduł jądra, bardziej odpowiednie jest użycie pliku modprobe.d conf. W CentOS ipmi_si jest wbudowane w obraz jądra, więc konfiguracje modprobe nie działają.
CentOS 6 ma sterownik ipmi skompilowany w jądrze. Jeśli nie potrzebujesz obsługi ipmi, wyłącz ją po prostu grub.conf
ipmi_si.tryacpi=0 ipmi_si.trydmi=0 ipmi_si.trydefaults=0
Znalazłem następujące rozwiązania tego problemu:
ipmitool bmc info
Wydaje się, że to budzi IPMI, a następnie przestaje używać 100% rdzenia.
Znalazłem również następujące pomocne:
echo 100 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
W przeszłości byłem w stanie na niektórych serwerach rozwiązać 100% wykorzystania procesora poprzez:
ipmitool lan print
i
ipmitool bmc reset cold
ale z mojego najnowszego doświadczenia wynika, że powyższe opcje spowodowałyby, ipmitool
że nie odpowiadam i siedzę tam, powodując, że Ctrl+ Cto.
Mam nadzieję, że to komuś pomaga.
echo 1 > /sys/module/ipmi_si/parameters/kipmid_max_busy_us
?