Термометр для ЦП: Полный гид по мониторингу температуры процессора в Linux

Термометр для ЦП: Полный гид по мониторингу температуры процессора в Linux

Температура процессора — это не просто цифры в мониторе, а жизненно важный показатель здоровья вашей Linux-системы. Перегрев ведёт к троттлингу (принудительному снижению частоты), нестабильной работе, а в долгосрочной перспективе — к сокращению срока служжи компонентов. К счастью, Linux предлагает богатый арсенал инструментов для мониторинга, от простых консольных утилит до красивых графических дашбордов. Давайте разберёмся, как держать руку на пульсе вашего CPU.

Почему это важно? Физика и последствия перегрева

Современные процессоры — чрезвычайно сложные и плотные микрочипы. При высокой нагрузке (игры, рендеринг, компиляция) они выделяют значительное количество тепла. Система охлаждения (кулер или радиатор) отводит это тепло. Если баланс нарушен, срабатывают механизмы защиты:

  • Троттлинг (Throttling): Автоматическое снижение тактовой частоты для уменьшения тепловыделения. Производительность падает иногда катастрофически.
  • Аварийное отключение: При критической температуре (обычно ~100-105°C) система мгновенно выключается, чтобы предотвратить физическое повреждение кристалла.

Важно: «Нормальная» температура зависит от модели CPU, нагрузки и системы охлаждения. В простое для десктопных CPU 30-45°C — хороший показатель, под нагрузкой 60-80°C может быть приемлемо. Для ноутбуков значения часто выше. Сверяйтесь со спецификациями производителя.

Инструменты мониторинга: от терминала до графики

В Linux всё начинается с командной строки. Ядро системы через интерфейсы ACPI, lm-sensors и другие предоставляет доступ к данным датчиков.

1. lm-sensors — фундамент

Пакет lm-sensors — это основа. Установите его (sudo apt install lm-sensors для Debian/Ubuntu или sudo pacman -S lm_sensors для Arch), затем выполните конфигурацию:

  1. sudo sensors-detect — отвечайте «yes» на все вопросы для поиска датчиков.
  2. sudo systemctl restart kmod (может потребоваться перезагрузка).
  3. Запустите sensors в терминале. Вы увидите вывод вроде:
    coretemp-isa-0000
    Adapter: ISA adapter
    Package id 0: +37.0°C (high = +80.0°C, crit = +100.0°C)
    Core 0: +36.0°C (high = +80.0°C, crit = +100.0°C)
    Core 1: +35.0°C (high = +80.0°C, crit = +100.0°C)

2. Утилиты для терминала

  • watch sensors: watch -n 2 sensors — обновляет показания каждые 2 секунды.
  • psensor: Графическая утилита, строящая графики в реальном времени. Устанавливается как psensor.
  • Glances: Мониторинг «всё-в-одном» (sudo apt install glances). Показывает температуру, нагрузку, память, диски и сеть.
  • btop / htop: Продвинутые мониторы системы, некоторые версии отображают температуру.

3. Графические дашборды и виджеты

Для любителей визуализации:

  • Conky: Крайне гибкий системный монитор, который можно настроить для вывода температуры на рабочий стол.
  • GNOME Shell Extensions: Например, «Vitals» показывает температуру в строке состояния.
  • KSysGuard (KDE) и System Monitor (GNOME) также могут отображать эти данные.

Что делать, если температура высокая? Практические шаги

  1. Проверьте физическое состояние: Выключите ПК, откройте корпус. Нет ли слоя пыли на радиаторах и вентиляторах? Очистите сжатым воздухом.
  2. Оцените качество термопасты: Термопаста между процессором и радиатором со временем (3-5 лет) высыхает и теряет свойства. Её замена может снизить температуру на 10-20°C.
  3. Настройте управление вентиляторами: Используйте pwmconfig (из пакета fancontrol) для создания более агрессивной кривой оборотов.
  4. Оптимизируйте нагрузку: Найдите процессы, которые необоснованно нагружают CPU (top, htop).
  5. Рассмотрите апгрейд охлаждения: Более мощный кулер, башенный радиатор или даже СЖО (система жидкостного охлаждения).

Совет для ноутбуков: Используйте подставку с охлаждением. Проверьте, не забиты ли вентиляционные отверстия. Иногда помогает ограничение максимальной частоты CPU через cpupower или настройки энергосбережения.

Автоматизация и оповещения

Мониторинг должен быть proactive. Настройте скрипт для оповещения:

#!/bin/bash
TEMP=$(sensors | grep 'Package id 0' | awk '{print $4}' | sed 's/[^0-9.]//g')
CRITICAL=85
if (( $(echo "$TEMP > $CRITICAL" | bc -l) )); then
    notify-send -u critical "ПЕРЕГРЕВ CPU!" "Температура: ${TEMP}°C"
    # Можно добавить команду на снижение нагрузки или логирование
fi

Добавьте этот скрипт в cron для периодического выполнения (crontab -e).

FAQ: Часто задаваемые вопросы

Какая температура процессора считается нормальной в Linux?

В простое: 30-50°C. Под нагрузкой: 60-85°C. Критической обычно является отметка 95-105°C, после чего происходит аварийное отключение. Всегда сверяйтесь с документацией вашей модели CPU.

Почему lm-sensors не показывает температуру?

Возможно, не запущены нужные kernel-модули. Выполните sudo sensors-detect и ответьте «yes» на все вопросы. После перезагрузите систему или загрузите модули вручную (sudo modprobe coretemp и др.).

Как мониторить температуру на сервере без GUI?

Используйте sensors, watch sensors, ipmitool (для серверного железа с IPMI) или настройте вывод данных в системы мониторинга типа Zabbix, Prometheus + Node Exporter.

Влияет ли мониторинг на температуру?

Нет, сами утилиты мониторинга потребляют ничтожные ресурсы. Повышение температуры вызывают тяжёлые вычислительные задачи: компиляция, кодирование видео, современные игры.

Можно ли контролировать скорость вентиляторов в Linux?

Да, с помощью пакета fancontrol. После настройки через pwmconfig вы сможете задать гибкие зависимости скорости оборотов от температуры.