CPU limits throttled due to high temp — Устранение троттлинга процессора в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «CPU frequency scaling: hardware limits throttled due to high temp» (или события «CPUx: Package temperature above threshold, cpu clock throttled») генерируется подсистемами ядра Intel Core Temp / AMD k10temp / Thermal Throttling Subsystem. При достижении критической температуры ядер (порог TjMax, обычно 95–105°C) встроенный контроллер CPU принудительно активирует механизм Thermal Throttling (PROCHOT), сбрасывая множитель тактовой частоты и пропуская такты (Clock Modulation) для защиты кристалла от деградации.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| PROCHOT# | Processor Hot Signal | Аппаратный сигнал перегрева, инициирующий падение тактовой частоты CPU. |
| TjMax | Max Junction Temperature | Максимально допустимая температура полупроводникового кристалла. |
| Impact | Performance Degradation | Падение производительности сервера на 50–80%, скачки latency в СУБД. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Экспресс-мониторинг текущих температур и частот ядер
# Установка сенсоров:
sudo apt-get install lm-sensors || sudo dnf install lm_sensors
# Просмотр температур ядер в реальном времени:
watch -n 1 sensors
# Проверка текущей фактической частоты всех ядер:
cat /proc/cpuinfo | grep "MHz"Сценарий 2: Проверка счетчиков троттлинга ядра Linux
# Просмотр числа аппаратных сбросов частоты по ядрам:
for f in /sys/devices/system/cpu/cpu*/thermal_throttle/*_count; do echo -n "$f: "; cat $f; doneЕсли счетчик package_throttle_count постоянно растет, сервер находится в состоянии непрерывного перегрева.
Сценарий 3: Настройка CPU Governor и ограничение энергопотребления (Intel RAPL)
Временное ограничение частоты до устранения физического перегрева:
# Установка энергосберегающего или сбалансированного режима:
sudo cpupower frequency-set -g powersave
# Принудительное ограничение максимальной частоты (например, до 2.4 GHz):
sudo cpupower frequency-set -u 2400MHzСценарий 4: Физическое обслуживание серверного оборудования
- Проверьте статус вентиляторов (Fan Speed) через IPMI SEL (
ipmitool sensor | grep Fan). - Очистите радиаторы от пыли и замените высохший термоинтерфейс (термопасту/термопрокладки).
- Убедитесь в целостности воздуховодов (Air Baffle) внутри серверного шасси.
ITSTM выполнит комплексный термоаудит серверных стоек, замену систем охлаждения и оптимизацию процессорных профилей CPU Gov под Highload.
Частые вопросы (FAQ)
Чем Thermal Throttling отличается от аварийного отключения (Thermal Trip)?
Throttling — это превентивное снижение частоты и напряжения питания (Vcore) для стабилизации температуры. Если температура продолжает расти и достигает отметки Thermal Trip (обычно 105–115°C), процессор мгновенно выключает питание сервера для защиты от физического выгорания.
Что такое демон thermald в Linux?
thermald (Intel Thermal Daemon) — это сервис пространства пользователя, который отслеживает температуру через D-Bus/sysfs и заблаговременно регулирует скорость кулеров, P-states и RAPL лимиты, не допуская аппаратного сброса частот процессором.
Может ли троттлинг вызываться плохим контактом датчика VRM (системы питания)?
Да. Если силовые фазы VRM материнской платы перегреваются (свыше 110°C), контроллер VRM отправляет сигнал BD_PROCHOT на процессор, заставляя CPU сбросить частоту до минимальных 800 МГц даже при холодных ядрах.
Как проверить настройки cpupower в системе?
Выполните команду cpupower frequency-info. Она покажет активный драйвер (intel_pstate / amd-pstate / acpi-cpufreq), текущий регулятор (governor) и аппаратные пределы частоты.