nvtop — консольный монитор видеокарт в духе htop. Он показывает загрузку графического процессора, занятую память, температуру, энергопотребление и процессы, которые используют GPU. Программа работает с NVIDIA, AMD и Intel, не требует графической оболочки и удобна как на рабочей станции, так и на сервере по SSH. Разберём установку, горячие клавиши и диагностику.
Что показывает nvtop
Верхняя часть экрана — список GPU с моделью, драйвером и общими показателями. Ниже — графики загрузки и памяти, а в нижней половине — таблица процессов с PID, пользователем и объёмом видеопамяти.
Для NVIDIA данные берутся через NVML, для AMD — через драйвер amdgpu и libdrm, для Intel — через i915 или xe. Набор доступных полей зависит от драйвера: где-то нет температуры или мощности, и это нормально.
nvtop не заменяет профилировщик. Он отвечает на вопросы «кто занял память», «почему вентилятор шумит» и «упирается ли задача в GPU», но не показывает шейдеры и не строит таймлайн кадров.
Полезно смотреть не только на среднюю загрузку, но и на память: видеокарта может простаивать, пока приложение ждёт данных из оперативной памяти. Высокое потребление энергии при низкой загрузке иногда указывает на ошибку драйвера или зависший процесс.
На ноутбуках отдельно следите за энергопотреблением и температурой: дискретная карта, которая не уходит в сон, быстро расходует батарею. Сравните показатели в простое и под нагрузкой — разница подскажет, есть ли проблема с управлением питанием.
Установка
Пакет есть в основных дистрибутивах. Выберите команду для своей системы; устанавливать все сразу не нужно.
sudo apt install nvtop
sudo dnf install nvtop
sudo pacman -S nvtop
В Fedora пакет может находиться в репозитории EPEL или в основной ветке — проверьте вывод dnf search nvtop. В контейнере программу запускать бессмысленно: ей нужен доступ к устройствам хоста.
nvtop --version
nvtop --help
Требования к драйверам
До установки монитора убедитесь, что GPU вообще работает и драйвер загружен. Проверьте устройство в PCI и связанный с ним модуль ядра.
lspci -nnk | grep -A3 -E 'VGA|3D|Display'
lsmod | grep -E 'nvidia|amdgpu|i915|xe'
dmesg | grep -iE 'gpu|drm' | tail -n 30
Для NVIDIA нужен проприетарный драйвер и рабочая команда nvidia-smi. Для AMD — драйвер amdgpu из ядра и пакет libdrm. Для Intel — i915 или новый xe в зависимости от поколения.
nvidia-smi
rocm-smi
intel_gpu_top -L
Если nvidia-smi не находит устройство, nvtop тоже не увидит карту. Сначала решите проблему драйвера, а не самого монитора.
Интерфейс и горячие клавиши
Запуск без параметров открывает интерактивный экран. Клавиша F2 открывает окно настроек, F6 меняет сортировку, F9 позволяет завершить процесс, F10 выходит. Стрелки перемещают курсор по списку.
nvtop
nvtop -d 10
nvtop -d 5
Параметр -d задаёт интервал в десятых долях секунды: -d 10 обновляет экран раз в секунду, -d 5 — дважды в секунду. Для долгого наблюдения увеличьте значение, чтобы не нагружать терминал.
Сортировка по памяти помогает найти утечки: процесс, который постепенно занимает всё больше видеопамяти, виден сразу. Сортировка по загрузке показывает, кто именно нагружает вычислительные блоки.
На удалённом сервере запускайте nvtop прямо в SSH-сеансе: программа использует текстовый интерфейс и не требует X11. Убедитесь, что терминал поддерживает цвета и достаточно высок, иначе таблица процессов обрежется.
Несколько GPU и выбор устройства
На машине с интегрированной и дискретной графикой nvtop покажет обе карты. Это полезно при проверке гибридного режима: приложение может рендерить на одной GPU и выводить изображение через другую.
nvidia-smi -L
lspci | grep -i vga
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
Переменная DRI_PRIME на AMD и Intel позволяет выбрать дискретную карту для конкретной программы. На NVIDIA аналогичную роль играют переменные __NV_PRIME_RENDER_OFFLOAD и __GLX_VENDOR_LIBRARY_NAME, но их стоит брать из документации драйвера.
Права доступа и типичные ошибки
Для чтения части показателей нужен доступ к /dev/dri. Добавьте пользователя в группы video и render, затем перезайдите в сеанс.
id
ls -l /dev/dri
sudo usermod -aG video,render "$USER"
groups
Если после добавления в группы ничего не изменилось, проверьте, что вы вошли заново. В SSH-сеансе старые права сохраняются до переподключения. Для Intel может понадобиться capability cap_perfmon: её выдаёт команда sudo setcap cap_perfmon=ep $(which nvtop).
- Пустой список GPU — проверьте драйвер и
lspci. - Нет температуры — драйвер не отдаёт сенсор, попробуйте
sensors. - Процессы не видны — не хватает прав или ядро скрывает данные.
- Мусор в терминале — уменьшите частоту обновления и проверьте
TERM.
Альтернативы и автоматизация
nvtop удобен для живого наблюдения; для снимка без ncurses есть nvtop -s, для циклического вывода — nvtop -l. Для долгого сбора метрик используйте штатные утилиты: nvidia-smi умеет выводить CSV, AMD предоставляет rocm-smi, Intel — intel_gpu_top.
nvtop -s
nvtop -l -d 10
nvidia-smi --query-gpu=timestamp,utilization.gpu,memory.used,temperature.gpu --format=csv -l 5
intel_gpu_top -J -o /tmp/intel-gpu.json
rocm-smi --showuse --showtemp
Не запускайте тяжёлый мониторинг на каждом узле без особой нужды: частый опрос сам создаёт нагрузку. Для серверов достаточно интервала в несколько секунд и агрегации в Prometheus или другую систему.
Диагностика нагрузки
Если GPU загружен на 100%, а приложение работает медленно, сравните загрузку вычислительных блоков и памяти. Высокая занятость памяти при низкой загрузке говорит об узком месте в передаче данных, а высокая температура — о троттлинге.
watch -n 1 nvidia-smi
nvidia-smi dmon -s pucvmet
cat /sys/class/drm/card0/device/power_dpm_state
Для AMD состояние питания и частоты доступны в sysfs. Менять их вручную стоит только при понимании последствий: неверные значения приводят к нестабильности.
Если приложение падает или экран гаснет под нагрузкой, проверьте журнал ядра. Сообщения драйвера часто содержат код ошибки, по которому можно найти причину: перегрев, нехватку питания или сбой прошивки.
journalctl -k | grep -iE 'xid|amdgpu|i915|xe' | tail -n 40
sensors
Итог
nvtop даёт быстрый и единообразный обзор GPU от разных производителей в одном терминале. Установите пакет, проверьте драйвер и права на /dev/dri, настройте столбцы и интервал обновления. Для разового анализа хватит интерактивного экрана, для долгого наблюдения используйте nvidia-smi, rocm-smi или intel_gpu_top с выгрузкой метрик.