Clobbering „powiadomienie o limicie mocy” na serwerach Dell 12G z RHEL6

9

Serwer: Poweredge r620
OS: RHEL 6.4
Jądro: 2.6.32-358.18.1.el6.x86_64

W moim środowisku produkcyjnym występują alarmy aplikacji. Krytyczne procesy wymagające procesora są pozbawione zasobów i powodują zaległości w przetwarzaniu. Problem występuje na wszystkich serwerach Dell 12. generacji (r620) w niedawno wdrożonym klastrze. O ile mi wiadomo, przypadki tego zdarzenia są zbliżone do szczytowego wykorzystania procesora, czemu towarzyszy duża ilość spamu z powiadomieniem o ograniczeniu mocy dmesg. Fragment jednego z tych wydarzeń:

Nov  7 10:15:15 someserver [.crit] CPU12: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU0: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU6: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU14: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU18: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU2: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU4: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU16: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU0: Package power limit notification (total events = 11)
Nov  7 10:15:15 someserver [.crit] CPU6: Package power limit notification (total events = 13)
Nov  7 10:15:15 someserver [.crit] CPU14: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU18: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU20: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU8: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU2: Package power limit notification (total events = 12)
Nov  7 10:15:15 someserver [.crit] CPU10: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU22: Core power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU4: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU16: Package power limit notification (total events = 13)
Nov  7 10:15:15 someserver [.crit] CPU20: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU8: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU10: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU22: Package power limit notification (total events = 14)
Nov  7 10:15:15 someserver [.crit] CPU15: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU3: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU1: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU5: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU17: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU13: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU15: Package power limit notification (total events = 375)
Nov  7 10:15:15 someserver [.crit] CPU3: Package power limit notification (total events = 374)
Nov  7 10:15:15 someserver [.crit] CPU1: Package power limit notification (total events = 376)
Nov  7 10:15:15 someserver [.crit] CPU5: Package power limit notification (total events = 376)
Nov  7 10:15:15 someserver [.crit] CPU7: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU19: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU17: Package power limit notification (total events = 377)
Nov  7 10:15:15 someserver [.crit] CPU9: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU21: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU23: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU11: Core power limit notification (total events = 369)
Nov  7 10:15:15 someserver [.crit] CPU13: Package power limit notification (total events = 376)
Nov  7 10:15:15 someserver [.crit] CPU7: Package power limit notification (total events = 375)
Nov  7 10:15:15 someserver [.crit] CPU19: Package power limit notification (total events = 375)
Nov  7 10:15:15 someserver [.crit] CPU9: Package power limit notification (total events = 374)
Nov  7 10:15:15 someserver [.crit] CPU21: Package power limit notification (total events = 375)
Nov  7 10:15:15 someserver [.crit] CPU23: Package power limit notification (total events = 374)

Trochę Google Fu ujawnia, że ​​jest to zwykle związane z gorącym procesorem lub uruchamianiem regulacji napięcia. Nie sądzę jednak, aby tak się działo. Czujniki temperatury dla wszystkich serwerów w klastrze działają poprawnie, zasady ograniczenia mocy są wyłączone w iDRAC, a mój profil systemu jest ustawiony na „Wydajność” na wszystkich tych serwerach:

# omreport chassis biossetup | grep -A10 'System Profile'
System Profile Settings
------------------------------------------
System Profile                                    : Performance
CPU Power Management                              : Maximum Performance
Memory Frequency                                  : Maximum Performance
Turbo Boost                                       : Enabled
C1E                                               : Disabled
C States                                          : Disabled
Monitor/Mwait                                     : Enabled
Memory Patrol Scrub                               : Standard
Memory Refresh Rate                               : 1x
Memory Operating Voltage                          : Auto
Collaborative CPU Performance Control             : Disabled
  • Post z listy mailingowej firmy Dell prawie idealnie opisuje objawy. Dell zasugerował, aby autor spróbował użyć profilu wydajności, ale to nie pomogło. W końcu zastosował pewne ustawienia w przewodniku firmy Dell dotyczące konfigurowania serwera w środowiskach o niskim opóźnieniu, a jedno z tych ustawień (lub ich kombinacja) prawdopodobnie rozwiązało problem.
  • Błąd Kernel.org nr 36182 zauważa, że ​​debugowanie przerwania ograniczenia mocy było domyślnie włączone, co powoduje spadek wydajności w scenariuszach, w których rozpoczyna się regulacja napięcia procesora.
  • Artykuł KB RHN (wymagane logowanie RHN) wspomina o problemie z serwerami PE r620 i r720, które nie działają z profilem wydajności, i zaleca aktualizację jądra wydaną dwa tygodnie temu. ... Z wyjątkiem tego, że prowadzimy profil wydajności ...

Wszystko, co mogę znaleźć w Internecie, prowadzi mnie tutaj w kółko. Co się do cholery dzieje?

Andrew B.
źródło
1
Do Twojej wiadomości, ten problem został poprawiony w jądrze głównym linii 3.11. Jest to spowodowane wyzwalaniem procedury obsługi przerwań jądra dla tego „normalnego” niekrytycznego zdarzenia. Zatwierdzone powyżej łącze wyłącza ten moduł obsługi.
Totor

Odpowiedzi:

8

To nie regulacja napięcia powoduje problem z wydajnością, ale uruchamiane przez nią jądro debugujące.

Pomimo pewnych dezinformacji ze strony Redhat wszystkie powiązane strony odnoszą się do tego samego zjawiska. Regulacja napięcia odbywa się z profilem wydajności lub bez niego, prawdopodobnie z powodu włączenia funkcji Turbo Boost . Bez względu na powód, te wahania napięcia słabo współdziałają z przerwaniami jądra z ograniczeniem mocy, które są domyślnie włączone w jądrze 2.6.32-358.18.1.el6.x86_64.

Potwierdzone obejścia:

  • Aktualizacja do najnowszej wersji jądra Redhat (2.6.32-358.23.2.el6) wyłącza to debugowanie i eliminuje problem z wydajnością.
  • Dodanie następujących parametrów jądra grub.confspowoduje wyłączenie PLN:clearcpuid=229

Niestabilne obejścia:

  • Ustawianie profilu systemowego „Wydajność”. Samo to nie wystarczyło, aby wyłączyć PLN na naszych serwerach. Twój przebieg może się różnić.

Złe obejścia:

  • Moduły powiązane z ACPI na czarnej liście. Widziałem to w kilku wątkach na forum. Źle doradzone, więc nie rób tego .
Andrew B.
źródło
Czy nie uruchomiłeś aktualizacji na nowo wdrożonych systemach?
ewwhite
@ewwhite Te serwery zostały wdrożone tuż przed uruchomieniem aktualizacji jądra. Nowe RPM zostało udostępnione 16 października .
Andrew B,
Grrr do Red Hat. Niezłe znalezisko.
ewwhite
Nawet po aktualizacji problem pojawił się ponownie po kilku tygodniach (w jądrze 2.6.32-431.17.1.el6.x86_64). Tym razem musieliśmy wyłączyć PLN za pomocą clearcpuid, aby się ich pozbyć. Ten problem sprawił mi już tyle bólów głowy! Mamy tylko jeden serwer Dell 12G (z tego powodu pozostanie jedynym).
Martijn
1
@Martijn Obecnie jesteśmy 2.6.32-431.11.2.el6.x86_64przy problemie i nie mamy z nim problemu. Wiele klastrów, duże obciążenia itp. Możliwe, że regresja mogła wkroczyć, gdy Redhat wydał aktualizację pięć dni temu. Dam ci znać, co znajdę, i zaktualizuję odpowiedź, jeśli odkryję, że tak jest.
Andrew B,