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 с выгрузкой метрик.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте