Home » nvtop: мониторинг GPU NVIDIA в Linux
nvtop: мониторинг GPU NVIDIA в Linux

nvtop: мониторинг GPU NVIDIA в Linux

О чём этот пост и зачем он нужен

Если у тебя на сервере крутится что-то GPU-шное — будь то нейросети, CUDA-расчёты, видеорендер или просто хочешь знать, кто и как грузит твои NVIDIA-шные карточки — без нормального мониторинга не обойтись. В этой статье рассказываю про nvtop — консольную утилиту для мониторинга NVIDIA GPU в Linux. Обсудим, как она работает, чем лучше других, как быстро её поднять, где может выстрелить в ногу и какие у неё есть фишки для автоматизации. Всё просто, без занудства, но с деталями, которые обычно не пишут в мануалах.

Почему мониторинг GPU — это важно

Если ты держишь сервер с графикой — арендуешь VPS или выделенный сервер с видеокартой — вопрос “а что там с загрузкой GPU?” появляется быстро. Особенно если:

  • Запускаешь несколько контейнеров с разными задачами и надо знать, кто сколько ресурсов жрёт.
  • Делаешь ML/AI, где простои GPU — прямой убыток.
  • Хотелось бы не спалить карточку из-за перегрева (да, бывает и такое, особенно в дешёвых дата-центрах).
  • Раздаёшь GPU по SSH разным пользователям и хочешь видеть, кто балуется.

Удивительно, но большинство стандартных тулз (типа top или htop) вообще не знают ничего про GPU. А вот nvtop — знает.

nvtop: что это и как оно работает

nvtop — это консольный монитор ресурсов NVIDIA GPU в режиме реального времени. Аналог htop, только для видеокарт. Поддерживает мульти-GPU, умеет показывать процессы, температуру, использование VRAM, энергопотребление и прочие ништяки. Работает на базе libnvidia-ml (NVML) — официальной библиотеки NVIDIA для мониторинга железа.

Структура и алгоритмы

  • Сканирует все доступные NVIDIA GPU через NVML.
  • Постоянно опрашивает карточки на предмет загрузки, температуры, энергопотребления, VRAM, активных процессов.
  • Показывает в псевдографике (ASCII-art) красивые графики загрузки.
  • Даёт список процессов с указанием PID, пользователя, типа задачи (Compute/Graphics/Copy), занятой видеопамяти и GPU, на котором работает процесс.
  • Может работать как с одной, так и с несколькими картами одновременно.

Всё это работает в нативном ncurses-интерфейсе — быстро, удобно, не требует X-сервера, можно запускать по SSH.

Как быстро и просто всё настроить

1. Установка nvtop

В большинстве популярных дистрибутивов nvtop уже есть в репозиториях. Но есть нюансы:

  • Debian/Ubuntu: пакет называется nvtop, но может быть не самой свежей версии.
  • CentOS/RHEL/Fedora: тоже есть, но иногда нужен EPEL-репозиторий.
  • Можно собрать из исходников (если хочется bleeding edge или нужна поддержка новых карт).

# Для Ubuntu/Debian
sudo apt update
sudo apt install nvtop

# Для Fedora
sudo dnf install nvtop

# Для Arch Linux
sudo pacman -S nvtop

# Для CentOS (EPEL)
sudo yum install epel-release
sudo yum install nvtop

Если хочется собрать самому (например, для поддержки новых драйверов или если nvtop нет в репах):


sudo apt install cmake libncurses5-dev libncursesw5-dev git libnvml-dev
git clone https://github.com/Syllo/nvtop.git
cd nvtop
cmake .
make
sudo make install

NB: Для работы nvtop нужны NVIDIA драйверы и установленная libnvidia-ml (NVML). Если драйверов нет — ничего не заработает!

2. Запуск и базовое использование


nvtop

Откроется интерфейс, похожий на htop, только для GPU. Управление клавишами — смотри подсказки снизу (например, F2 — настройки, q — выход).

3. Мониторинг на удалённом сервере (через SSH)


ssh user@your-server
nvtop

Работает даже без X11, прямо в терминале.

4. Мониторинг в Docker-контейнере

Если запускаешь контейнер с доступом к GPU, нужно пробросить устройства и библиотеки:


docker run --gpus all -it --rm \
  -v /usr/lib64/nvidia:/usr/lib64/nvidia \
  --device /dev/nvidia0 \
  --device /dev/nvidiactl \
  --device /dev/nvidia-uvm \
  your_image bash

# внутри контейнера:
nvtop

Или проще — использовать nvidia-docker.

Примеры и кейсы использования

Сценарий Как помогает nvtop Рекомендации
Один сервер, несколько GPU, разные задачи (ML/рендер/тесты) Показывает кто и какой GPU грузит, по каким процессам, сколько VRAM занято Можно быстро вычислить, не простаивает ли GPU и не перегружен ли один из них
Общий сервер, много пользователей (SSH/Jupyter) Видно, кто запустил какие задачи, сколько ресурсов жрёт каждый Легко найти “забытый” процесс, который держит GPU
Скрипты автоматизации Можно парсить вывод nvtop (или использовать nvidia-smi для скриптов) Идеально для алертов, сбора статистики, автопереноса задач
Диагностика проблем (троттлинг, перегрев, падение производительности) Видно температуру, частоты, энергопотребление, лимиты Можно быстро понять, что карта перегревается или работает не на полную
Тестирование новой железки или драйвера Видно все параметры в реальном времени, можно сравнить с ожиданиями Удобно для бенчмарков и стресс-тестов

Новичковые ошибки и мифы

  • Ошибка: “nvtop не показывает ничего, хотя драйвер стоит”.
    Реальность: Проверь, что стоит проприетарный драйвер NVIDIA, а не nouveau. Проверь lsmod | grep nvidia и nvidia-smi.
  • Ошибка: “Вижу только один GPU, хотя их несколько”.
    Реальность: Проверь, что все карты видны в nvidia-smi. Иногда помогает sudo reboot после установки драйверов.
  • Миф: “nvtop — только для NVIDIA”.
    Реальность: В новых версиях есть amdgpu-top для AMD, но это другой бинарник.
  • Ошибка: “Не показывает процессы других пользователей”.
    Реальность: Запусти nvtop с sudo, если хочешь видеть все процессы.

Похожие решения и альтернативы

  • nvidia-smi — дефолтная утилита NVIDIA. Хороша для скриптов и быстрого просмотра, но нет real-time графиков и списка процессов в удобном виде.
  • gpustat — Python-скрипт для вывода статуса GPU, но не real-time и не такой информативный.
  • watch -n 1 nvidia-smi — костыль, обновляет вывод nvidia-smi каждую секунду. Графиков нет, неудобно для анализа процессов.
  • htop + nvidia-smi — можно комбинировать, но это не то.

Таблица сравнения

Инструмент Графики Real-time Список процессов Удобство
nvtop Да Да Да Высокое
nvidia-smi Нет Ограниченно Да Среднее
gpustat Нет Нет Да Среднее
htop Только CPU/RAM Да Да (CPU) Высокое

Интересные фишки и нестандартные способы использования

  • Можно запускать nvtop в tmux или screen сессии — удобно для долгого мониторинга серверов.
  • В новых версиях поддерживается multi-GPU вывод в одном окне — удобно, если у тебя ферма.
  • Можно переключаться между GPU клавишами ( ), фильтровать процессы, менять порядок столбцов.
  • Скрипты для алертов: можно парсить вывод nvidia-smi или nvtop --json (если поддерживается), и отправлять алерты в Telegram/Slack, если температура вышла за пределы.
  • Использование в cron: например, снимать снэпшоты загрузки GPU раз в минуту и строить красивые графики в Grafana.
  • В Docker-контейнерах nvtop можно использовать для live-мониторинга задач прямо из контейнера, если проброшены нужные устройства.

Автоматизация и новые возможности

Если ты пишешь свои скрипты для автоскейлинга, балансировки задач между GPU, или хочешь сделать алерты (например, если GPU простаивает или перегревается) — nvtop и nvidia-smi дают все нужные данные. Можно:

  • Собирать статистику по загрузке и VRAM, чтобы динамически распределять задачи между GPU.
  • Автоматически убивать процессы, если они “висят” на GPU слишком долго (например, забытый Jupyter-ноутбук).
  • Интегрировать мониторинг GPU в Prometheus (через nvidia_gpu_prometheus_exporter).
  • Делать алерты на перегрев, троттлинг, превышение энергопотребления.

Всё это реально упростит жизнь, если у тебя не один сервер, а целый парк GPU-инстансов.

Статистика и популярность

  • Проект nvtop на GitHub стабильно входит в топ-10 тулз для мониторинга GPU.
  • Используется в большинстве крупных ML-лабораторий и дата-центров с GPU-хостингом.
  • Входит в официальные репозитории многих дистрибутивов.

Выводы и рекомендации

Если у тебя на сервере есть NVIDIA GPU — nvtop must-have. Это инструмент, который реально помогает:

  • Видеть, кто и как грузит твои видеокарты.
  • Быстро находить затыки и простаивающие ресурсы.
  • Диагностировать перегрев, троттлинг, неправильное распределение задач.
  • Держать сервер под контролем, даже если пользователей много и все работают по SSH.
  • Интегрировать мониторинг GPU в свои скрипты и автоматизацию.

Установка занимает пару минут, работает даже на VPS и выделенных серверах без GUI. Если нужен хостинг с GPU — смотри VPS или выделенные сервера с поддержкой NVIDIA.

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

Официальные ссылки:

Если есть вопросы или лайфхаки по nvtop — делись в комментариях!


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

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

Leave a reply

Your email address will not be published. Required fields are marked