Перегрев: частота снижена, службы работают медленнее
При перегреве процессор снижает частоту. Со стороны служб это выглядит как необъяснимое замедление: нагрузка та же, ошибок нет, а время ответа выросло в разы. Ключ к разбору — сообщения ядра о температуре.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Охлаждение не справляется
Пыль, остановившийся вентилятор или высокая температура в помещении. Частота снижается, чтобы не перегреть кристалл.
-
Замедление принимают за проблему службы
Разбор уходит в приложение, хотя причина в железе. Признак — замедление всех служб сразу, а не одной.
-
Ограничение задано настройками питания
Режим энергосбережения тоже держит частоту низкой, и картина похожа на перегрев без сообщений о температуре.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Сообщения ядра о температуре и снижении частоты.
journalctl -k -b --no-pager | grep -iE "thermal|throttl" | tailТекущие температуры, если доступны датчики.
sensors 2>/dev/null | head -20Текущие частоты ядер.
grep MHz /proc/cpuinfo | headРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Пыль, остановившийся вентилятор или высокая температура в помещении. Частота снижается, чтобы не перегреть кристалл.
- Как проверить
-
Посмотрите сообщения ядра и текущую температуру.
journalctl -k -b --no-pager | grep -iE "thermal|throttl" | tail sensors 2>/dev/null | grep -iE "core|package" | head
- Как исправить
- Разбирайтесь с охлаждением. Программными средствами перегрев не лечится, а снижение частоты — защита, а не сбой.
- Почему происходит
- Разбор уходит в приложение, хотя причина в железе. Признак — замедление всех служб сразу, а не одной.
- Как проверить
-
Сравните время ответа и частоту процессора.
grep MHz /proc/cpuinfo | head -4 uptime
- Как исправить
- Проверяйте частоту при жалобах на скорость. Сниженная частота при низкой нагрузке — почти всегда температура или ограничение питания.
- Почему происходит
- Режим энергосбережения тоже держит частоту низкой, и картина похожа на перегрев без сообщений о температуре.
- Как проверить
-
Посмотрите режим управления частотой.
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2>/dev/null; cpupower frequency-info 2>/dev/null | head -8
- Как исправить
- Для серверов с требованиями к времени ответа выбирайте режим производительности. Для этого есть штатные средства управления частотой.
Пример вывода
Частота снижена из-за температуры. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
kernel: CPU2: Core temperature above threshold, cpu clock throttled (total events = 18422)
kernel: CPU2: Package temperature above threshold, cpu clock throttled
kernel: CPU2: Core temperature/speed normal
Связанные ошибки
- Служба работает медленно: упор в CPUQuota Квота процессора ограничивает службу: признаки, как измерить и когда квота вредна.
- A start job is running: загрузка висит на одной службе Загрузка останавливается с обратным отсчётом: служба не укладывается в таймаут. Как найти виновника и не ждать.
- Elasticsearch: max virtual memory areas vm.max_map_count is too low Elasticsearch отказывается стартовать из-за заниженного vm.max_map_count. Как поднять значение и закрепить его.
- Function not implemented в контейнере Ошибка 38 при системном вызове: вызов запрещён фильтром или отсутствует в окружении. Разбор для контейнеров.
- Hardware Error / EDAC: ошибки памяти в журнале Ядро сообщает об ошибках памяти. Что считать безобидным, а что поводом менять модуль.
- I/O error, dev sda, sector N: ошибка носителя Ядро сообщает об ошибке чтения или записи на устройстве. Что делать со службой и данными.
- Invalid argument в журнале службы Ошибка 22: недопустимый аргумент системного вызова. Как сузить поиск, когда сообщение ничего не уточняет.
- No buffer space available в журнале службы Ошибка 105: нет места в буферах ядра. Разбор для сети и таблиц соседей.
Источники
- Документация ядра: тепловая подсистема
-
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено нагрузкой на машине с недостаточным охлаждением.