Назад | Перейти на главную страницу

«Уведомление об ограничении мощности» на серверах Dell 12G с RHEL6

Сервер: Poweredge r620
ОС: RHEL 6.4
Ядро: 2.6.32-358.18.1.el6.x86_64

В моей производственной среде возникают аварийные сигналы приложений. Критически важные процессы, требующие большого количества ресурсов ЦП, испытывают нехватку ресурсов и вызывают задержку обработки. Проблема возникает на всех серверах Dell 12-го поколения (r620s) в недавно развернутом кластере. Насколько я могу судить, случаи этого совпадают с пиковой загрузкой ЦП, сопровождаемой огромным количеством спама с «уведомлениями об ограничении мощности». dmesg. Отрывок из одного из этих событий:

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)

Немного Google Fu показывает, что это обычно связано с перегревом процессора или сбоем регулирования напряжения. Я не думаю, что это то, что происходит. Датчики температуры для всех серверов в кластере работают нормально, политика ограничения мощности отключена в iDRAC, а для моего профиля системы установлено значение «Производительность» на всех этих серверах:

# 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

Все, что я могу найти в Интернете, крутит меня здесь. Что, черт возьми, происходит?

Проблема с производительностью возникает не из-за регулирования напряжения, а из-за прерывания ядра отладки.

Несмотря на некоторую дезинформацию со стороны Redhat, все связанные страницы относятся к одному и тому же явлению. Регулировка напряжения происходит с профилем производительности или без него, вероятно, из-за Турбо ускорение функция включена. Независимо от причины, эти колебания напряжения плохо взаимодействуют с прерываниями ядра, ограничивающими мощность, которые включены по умолчанию в ядре 2.6.32-358.18.1.el6.x86_64.

Подтвержденные обходные пути:

  • Обновление до последнего выпущенного ядра Redhat (2.6.32-358.23.2.el6) отключает эту отладку и устраняет проблемы с производительностью.
  • Добавление следующих параметров ядра в grub.conf отключит PLN: clearcpuid=229

Нестандартные обходные пути:

  • Установка системного профиля «Производительность». Одного этого было недостаточно, чтобы отключить PLN на наших серверах. Ваш пробег может отличаться.

Плохой Обходные пути:

  • Внесение в черный список модулей, связанных с ACPI. Я видел это в нескольких ветках форума. Опрометчиво, так что не.