- Home »

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 — делись в комментариях!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.