Звонок в 9 утра: “Прод тормозит так, будто работает на картошке!” Симптомы:
Nginx отвечает по 5-10 секунд SSH коннект устанавливается минуту Load Average зашкаливает при минимальной нагрузке
Первые подозреваемые:
- DDoS? - Нет, трафик обычный
- Память забита? - Свободно 80%
- Диск умирает? - iostat в норме
- Сеть? - ping до соседних серверов 0.2ms
Копаем глубже:
cat /proc/cpuinfo | grep "cpu MHz"
# cpu MHz : 200.000
# cpu MHz : 200.000
ЧЕГО?! 😱 Процессор работает на 200 MHz вместо 3200! Проверяем режим работы CPU:
cpupower frequency-info
# current CPU frequency: 200 MHz (asserted by call to hardware)
# boost state support: Supported: no, Active: no
Процессор в режиме максимального энергосбережения и отказывается разгоняться.
Проверили логи IPMI:
Power Supply 2 Failure Detected
System Running in Power Capping Mode
Один из двух блоков питания вышел из строя! Сервер автоматически перешел в режим защиты, снизив частоту CPU до минимума. Временное решение:
# Отключили power capping через IPMI
ipmitool raw 0x30 0x81 0x00 0x00 0x00
Частота поднялась до 800 MHz - хотя бы что-то. Правильное решение: Заменили блок питания, и сервер ожил на полную мощность.
Уроки:
- Железо тоже ломается - не зацикливайтесь только на софте
- IPMI/iDRAC - ваш друг - там есть ответы на многие вопросы
- Мониторьте железо: температуру CPU/RAM, статус блоков питания, скорость вентиляторов, частоту процессора
Добавьте в мониторинг:
# Alertmanager rule
- alert: CPUFrequencyLow
expr: node_cpu_frequency_hertz < 1000000000
annotations:
summary: "CPU frequency critically low on {{ $labels.instance }}"
P.S. Теперь у меня в чек-листе траблшутинга появился пункт “Проверить частоту CPU”.