Как узнать температуру видеокарты в Linux: Полное руководство

Мониторинг термального состояния графического процессора в операционной системе Linux является критически важной задачей для обеспечения стабильной работы системы. В отличие от Windows, где большинство утилит установлены по умолчанию или легко находятся в магазине приложений, в дистрибутивах Linux часто требуется ручная настройка инструментов для получения точных данных о (overheating).

Игнорирование показаний температуры может привести к троттлингу, когда видеокарта принудительно снижает свою производительность для самоконсервации, либо к внезапному отключению системы при достижении критических значений. Понимание того, какие утилиты lm-sensors или специализированные драйверы нужно задействовать, поможет вам поддерживать оптимальный баланс между производительностью и долговечностью железа.

Существует несколько подходов к решению этой задачи: от простых консольных команд до развертывания полноценных веб-интерфейсов. Выбор метода зависит от того, используете ли вы стационарный рабочий стол или headless сервер, а также от типа установленного видеоускорителя — NVIDIA, AMD или Intel.

Подготовка системы и установка базовых утилит

Прежде чем пытаться считывать данные, необходимо убедиться, что в системе установлены необходимые пакеты для взаимодействия с аппаратными датчиками. В большинстве современных дистрибутивов базовый набор инструментов отсутствует"из коробки" для экономии ресурсов.

Первым шагом является установка пакета lm-sensors, который служит фундаментом для считывания показаний с чипов северного моста и других компонентов материнской платы. Для дистрибутивов на базе Debian и Ubuntu введите команду:

sudo apt update && sudo apt install lm-sensors

После установки пакета необходимо запустить утилиту конфигурации, которая просканирует шины I2C и SPI, чтобы найти доступные датчики. Это важный этап, так как без правильной конфигурации система не увидит даже те компоненты, которые физически подключены.

sudo sensors-detect

В процессе запуска утилиты вам будут заданы вопросы о том, какие модули ядра следует загрузить. Рекомендуется отвечать"yes" на все предложения по умолчанию, чтобы максимизировать охват оборудования. Если сканирование пройдет успешно, команда sensors после этого начнет выдавать полезную информацию.

Однако стоит понимать, что стандартный lm-sensors не всегда корректно работает с современными видеокартами, особенно с моделями NVIDIA, так как они требуют собственных драйверов для экспорта датчиков в систему. В таких случаях могут понадобиться дополнительные модули.

⚠️ Внимание: Если вы используете проприетарные драйверы NVIDIA, стандартный пакет lm-sensors может не показать температуру GPU без установки дополнительного модуля nvidia-smi или интеграции через nv-fancontrol.

Для пользователей Arch Linux или его производных (Manjaro, EndeavourOS) процесс установки аналогичен, но использует другой менеджер пакетов. Запустите:

sudo pacman -S lm_sensors

После установки и настройки не забудьте добавить модули в файл /etc/modules-load.d/sensors.conf, чтобы они загружались автоматически при каждом запуске системы. Это обеспечит стабильность работы мониторинга без необходимости ручного вмешательства после перезагрузки.

Мониторинг через командную строку и утилиту nvtop

Для тех, кто предпочитает работать в терминале или управляет сервером без графического интерфейса, существуют мощные консольные утилиты. Одной из самых популярных и информативных является nvtop, которая была разработана специально для мониторинга GPU, аналогично тому, как htop работает с процессами CPU.

Утилита nvtop поддерживает видеокарты от NVIDIA, AMD и Intel, отображая не только температуру, но и загруженность ядра, потребление памяти и потребление энергии в реальном времени. Это делает её незаменимым инструментом для стресс-тестирования и отладки производительности.

Установка nvtop в Ubuntu/Debian выполняется командой:

sudo apt install nvtop

После запуска вы увидите интерактивный интерфейс с графиками. В верхней части экрана обычно отображается GPU Temperature, которая меняется динамически. Это позволяет мгновенно реагировать на скачки температуры при запуске тяжелых вычислений или рендеринга.

Кроме того, для владельцев карт NVIDIA существует родная утилита nvidia-smi, которая входит в комплект драйверов. Она выводит сводную информацию, включая текущую температуру и критические пороги срабатывания защиты.

nvidia-smi --query-gpu=temperature.gpu,timing,utilization.gpu --format=csv

Эта команда позволяет выводить данные в удобном для скриптов формате CSV, что удобно для автоматизации сбора статистики. Вы можете настроить локинг данных в файл для последующего анализа в Excel или специализированном ПО.

📊 Какой метод мониторинга вы предпочитаете?
Командная строка (nvtop/sensors)
Графический интерфейс (GKrellM)
Удаленный мониторинг (WebUI)
Скрипты и алерты

Для карт AMD ситуация немного иная, и часто используется утилита radeontop или системные файлы в /sys/class/drm/, но nvtop также умеет считывать данные с них, если установлены соответствующие драйверы ROCm или Mesa.

Графический мониторинг и плагин Conky

Если вы используете рабочий стол с графическим интерфейсом, гораздо удобнее видеть температуру прямо на рабочем столе, не переключаясь в терминал. Для этого идеально подходит инструмент Conky, который позволяет создавать легкие и информативные виджеты на рабочем столе.

Conky работает за счет чтения данных из системных файлов и вывода их в виде текста или графиков. Настройка требует редактирования конфигурационного файла, обычно расположенного по пути ~/.conkyrc. В этом файле прописываются переменные, отвечающие за температуру GPU.

Пример строки конфигурации для вывода температуры NVIDIA может выглядеть так:

${color1}GPU Temp:${color2} ${execi 2 nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader}°C

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

Также существуют готовые темы для Conky, которые уже включают мониторинг видеокарты. Их можно найти в репозиториях или на сайтах-агрегаторах тем. Это экономит время на настройку и позволяет сразу получить профессиональный вид.

Важно отметить, что для корректной работы Conky с NVIDIA драйвер должен быть установлен и корректно настроен. В противном случае команда в конфигурации может возвращать ошибку или пустое значение.

☑️ Настройка графического виджета

Выполнено: 0 / 5

⚠️ Внимание: При использовании Conky убедитесь, что у пользователя есть права на запуск утилиты nvidia-smi без sudo, иначе виджет будет переставать работать после первой попытки чтения.

Использование специализированных утилит для AMD и Intel

Хотя nvtop является универсальным решением, для видеокарт AMD и Intel существуют свои нативные инструменты, которые могут давать более точную информацию о специфических параметрах. Для архитектуры AMD (Radeon) ключевым инструментом является radeontop и доступ через sysfs.

Системный интерфейс `sysfs` предоставляет прямой доступ к данным драйвера. Для карт AMD температура часто доступна по пути /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input. Это файл содержит значение в миллиградусах Цельсия.

cat /sys/class/drm/card0/device/hwmon/hwmon0/temp1_input | awk'{print $1/1000"°C"}'

Аналогичный подход применяется и для интегрированных графических процессоров Intel. Драйвер i915 экспортирует данные о температуре в аналогичную структуру каталогов. Это полезно, так как не требует установки стороннего ПО, если только драйвер уже установлен.

Для более продвинутого мониторинга можно использовать утилиту powertop от Intel, которая не только показывает температуру, но и анализирует энергопотребление, предлагая способы оптимизации. Она полезна для ноутбуков, где важно балансировать между производительностью и временем работы от батареи.

Также стоит упомянуть утилиту radeontop, которая показывает загрузку различных блоков GPU, включая шейдеры и текстуры. Хотя её основной фокус — загрузка, она часто помогает понять, почему температура растет (например, из-за высокой загрузки блоков рендеринга).

Где найти путь к датчикам в системе?

Путь может отличаться в зависимости от версии ядра и драйвера. Обычно нужно проверить содержимое каталога /sys/class/hwmon/ и найти подкаталог с именем vendor, соответствующим вашему производителю GPU.

Иногда данные не считываются из-за того, что модуль ядра для управления вентиляторами или датчиками не загружен. В этом случае может потребоваться ручная загрузка модуля amdkfd или i915 с соответствующими параметрами.

Анализ критических значений и настройка алертов

Просто знать текущую температуру недостаточно — важно понимать, когда она становится опасной. Для большинства современных видеокарт критическим порогом считается температура выше 80-85°C под нагрузкой. Однако для ноутбуков порог может быть ниже из-за тесного корпуса.

Ниже приведена таблица ориентировочных температурных режимов для различных типов видеокарт в режиме простоя и под нагрузкой:

Тип нагрузки Оптимальная температура Критическая зона Действие
Простой (Idle) 30°C – 50°C Выше 60°C Проверить работу вентиляторов
Средняя нагрузка 50°C – 70°C Выше 75°C Очистить пыль, усилить продув
Тяжелая нагрузка 65°C – 80°C Выше 85°C Заменить термопасту, снизить частоты
Троттлинг Не применимо 85°C – 95°C Немедленное снижение нагрузки

Для автоматизации реакции на перегрев можно настроить скрипты, которые будут отправлять уведомления или снижать частоты. Например, можно использовать команду watch для периодического вывода температуры и проверки значений.

watch -n 5"nvidia-smi --query-gpu=temperature.gpu --format=csv"

Если температура превышает заданный порог, скрипт может запустить команду для увеличения оборотов вентиляторов (если это поддерживается драйвером) или вывести системное уведомление через notify-send.

Засорение радиатора или высыхание термопасты — главные враги стабильной температуры.

⚠️ Внимание: Если температура стабильно держится выше 90°C, не продолжайте использование системы в таком режиме, так как это может привести к необратимому повреждению ядра GPU.

Для продвинутых пользователей существует возможность настройки fan curve (кривой вентилятора), чтобы система сама регулировала скорость обдува в зависимости от температуры. Это позволяет держать температуру в узком диапазоне без лишнего шума.

Удаленный мониторинг и автоматизация

В сценариях с серверами или рабочими станциями, доступ к которым осуществляется удаленно, физический мониторинг невозможен. Здесь на помощь приходят системы мониторинга вроде Prometheus с экспортером node_exporter или специализированные решения для GPU.

Для сбора метрик GPU в Prometheus используется nvidia_gpu_exporter или dcgm-exporter (Data Center GPU Manager). Эти инструменты собирают данные через API драйверов и экспортируют их в формате, понятном системам мониторинга.

Настроенный дашборд в Grafana позволяет визуализировать историю температур, строить графики трендов и настраивать алерты. Вы можете получать уведомления в Telegram или на почту, если температура видеокарты превысит заданный порог.

dcgm-exporter --port 9400

Такой подход особенно актуален для ферм майнинга, рендер-ферм или кластеров для машинного обучения, где обслуживание сотен GPU вручную невозможно. Автоматизация позволяет минимизировать время простоя из-за перегрева.

Кроме того, можно использовать простые скрипты на Python или Bash, которые будут отправлять данные на облачные сервисы или в локальную базу данных. Это дает возможность анализировать долгосрочные тренды и планировать обслуживание оборудования.

Не забывайте проверять совместимость версий экспортеров с вашей версией драйвера. Обновление драйвера может потребовать обновления и соответствующего экспортера для корректной работы.

Частые вопросы и устранение неполадок

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

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

Скорее всего, драйвер видеокарты не экспортирует данные в стандартное место для lm-sensors. Для карт NVIDIA необходимо использовать nvidia-smi или установить модуль nvidia-smi для lm-sensors. Для карт AMD проверьте доступ к файлам в /sys/class/drm/.

Как узнать, какой драйвер установлен и поддерживает ли он мониторинг?

Используйте команду lspci -k | grep -A 2 -i vga или lspci -v | grep -A 7 VGA. В выводе будет указана строка"Kernel driver in use", которая покажет имя драйвера. Убедитесь, что это проприетарный или свежий открытый драйвер, поддерживающий чтение сенсоров.

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

Да, это возможно, но требует специфических утилит. Для NVIDIA используется nvidia-settings, для AMD — radeontop или amdctl. Однако полная поддержка управления кривой вентиляторов зависит от конкретной модели карты и версии драйвера.

Что делать, если температура скачет резко?

Резкие скачки могут быть связаны с интермиттентной загрузкой или ошибкой датчика. Проверьте, нет ли фоновых процессов, нагружающих GPU. Также убедитесь в стабильности (питания) и отсутствии перегрева VRM на плате.

Нужен ли root доступ для чтения температуры?

Обычно да, для чтения некоторых датчиков требуется права суперпользователя. Однако для nvidia-smi и чтения из /sys/firmware часто достаточно прав обычного пользователя, если он добавлен в соответствующую группу (например, video).

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