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?
źródło
Odpowiedzi:
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:
grub.conf
spowoduje wyłączenie PLN:clearcpuid=229
Niestabilne obejścia:
Złe obejścia:
źródło
2.6.32-431.11.2.el6.x86_64
przy 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.