- Home »

Визуализация производительности GPU с nvtop и radeontop — современные гайды
В этой статье разберём, как визуализировать производительность GPU в Linux с помощью nvtop и radeontop. Если ты когда-нибудь пытался понять, почему твой сервер на GPU вдруг начинает тормозить, или просто хочешь увидеть, как твой кластер жрёт ресурсы во время очередного запуска машинки в Docker — ты попал по адресу. Здесь будет всё: от быстрой установки до лайфхаков по автоматизации и реальных кейсов из жизни. Без воды, только практические советы и немного гиковского юмора.
Зачем вообще заморачиваться с мониторингом GPU?
Серверы с видеокартами сейчас на вес золота — особенно если ты работаешь с AI, ML, рендерингом или просто обожаешь запускать контейнеры с TensorFlow. Но вот беда: стандартные утилиты типа top
или htop
про GPU знают примерно ничего. Пропустить момент, когда твоя RTX 4090 или старенькая Radeon VII внезапно уходит в 100% лоад — проще простого.
Здесь и приходят на помощь nvtop (для NVIDIA) и radeontop (для AMD). Это не просто красивые графики — это твой шанс вовремя поймать утечку памяти, увидеть, как твой контейнер начинает сжирать ресурсы, и не получить от заказчика вопрос “а почему всё так медленно?”.
Проблема: почему мониторинг GPU — это не банальный top
В отличие от CPU или RAM, мониторинг видеокарт — это отдельная вселенная. У каждого производителя свои драйвера, свои API, свои баги и свои “фишки”. Да и работать с ними нужно аккуратно:
- Встроенные драйверные утилиты (например,
nvidia-smi
) дают много инфы, но неудобны для постоянного мониторинга. - Визуализация нагрузки в реальном времени нужна не только для красоты — иногда это вопрос денег (GPU-часа стоят дорого!) и SLA.
- В облаке или на выделенном сервере часто нет GUI — нужен консольный, быстрый и понятный инструмент.
Как это работает? Алгоритмы и структура
nvtop
nvtop
— это консольный монитор для NVIDIA GPU. Под капотом он использует NVIDIA Management Library (NVML), которая позволяет получать данные о загрузке, температуре, потреблении памяти, энергопотреблении и даже о процессах, которые используют GPU.
- Показывает все GPU в системе (особенно удобно на сервере с несколькими картами).
- В реальном времени отображает графики загрузки, использования памяти, температуры, энергопотребления.
- Показывает процессы, которые используют GPU, с PID, именем, потреблением памяти.
radeontop
radeontop
— аналогичная утилита для AMD GPU. Она читает статистику из DRM интерфейса ядра Linux и показывает загрузку GPU, использование памяти, загрузку шейдеров и других блоков.
- Работает с большинством современных AMD карт, включая серверные.
- Показывает загрузку отдельных компонентов GPU (шейдеры, память, DMA, UVD и т.д.).
- Очень лёгкая, не требует лишних зависимостей.
Быстрая и простая настройка: инструкция для тех, кто не любит читать мануалы
Установка nvtop
- На Ubuntu/Debian (20.04+, 22.04+):
sudo apt update sudo apt install nvtop
- На CentOS/RHEL/Fedora:
sudo dnf install nvtop
- На Arch Linux:
sudo pacman -S nvtop
- Сборка из исходников (если нужна поддержка новых карт или свежий релиз):
git clone https://github.com/Syllo/nvtop.git cd nvtop mkdir build && cd build cmake .. make sudo make install
NB: Для работы nvtop
нужны драйвера NVIDIA и установленная libnvml
. В облаке или на голом сервере — не забудь установить nvidia-driver
и nvidia-utils
.
Установка radeontop
- На Ubuntu/Debian:
sudo apt update sudo apt install radeontop
- На CentOS/Fedora:
sudo dnf install radeontop
- На Arch Linux:
sudo pacman -S radeontop
NB: Драйвера AMD должны быть установлены. Для серверных карт типа MI50/MI100 может понадобиться ROCm.
Запуск и базовые команды
- nvtop:
nvtop
- Стрелки — переключение между GPU (если их несколько)
- q — выход
- h — помощь
- radeontop:
radeontop
- q — выход
- h — помощь
Советы по запуску в Docker и на удалённых серверах
- Для nvtop в Docker-контейнере:
docker run --gpus all -it --rm nvidia/cuda:12.1.0-base-ubuntu22.04 bash apt update && apt install nvtop
Не забудь пробросить /dev/nvidia* и /proc/driver/nvidia.
- Для radeontop — обычно проще запускать на хосте, но можно пробросить /dev/dri.
Кейсы из жизни: когда nvtop и radeontop реально спасают
Сценарий | nvtop | radeontop | Комментарий |
---|---|---|---|
Мониторинг загрузки GPU в ML-обучении | + (видно процессы, память, графики) | + (видно загрузку, но без процессов) | Для NVIDIA — must have, для AMD — тоже полезно, но инфы меньше |
Поиск утечек VRAM | + (видно, какой процесс сколько занимает) | ± (общая загрузка памяти, без детализации по процессам) | nvtop тут рулит |
Тестирование контейнеров с GPU | + (легко смотреть, что происходит внутри контейнера) | + (если AMD-карта проброшена в контейнер) | Оба варианта удобны |
Диагностика перегрева | + (температура, энергопотребление) | ± (температура есть, но не всегда) | nvtop информативнее |
Мониторинг в облаке (без GUI) | + (ssh, tmux — всё работает) | + (ssh, tmux — всё работает) | Оба хороши |
Ошибки новичков и мифы
- Миф: “nvidia-smi показывает всё, зачем nvtop?”
Реальность:nvidia-smi
— это снимок состояния, без графиков и детализации по процессам в реальном времени.nvtop
— это топ, какhtop
для CPU, только для GPU. - Ошибка: “radeontop не видит мою карту!”
Реальность: Проверь драйвера, права на /dev/dri, версию ядра. Не все старые или экзотические AMD карты поддерживаются. - Миф: “Мониторинг GPU сильно нагружает систему.”
Реальность: nvtop и radeontop потребляют минимум ресурсов, даже на старых серверах. - Ошибка: “Не вижу GPU в контейнере!”
Реальность: Проверь проброс /dev/nvidia* (или /dev/dri для AMD), используй флаг--gpus all
для Docker.
Сравнение с другими решениями
- nvidia-smi — хорошо для скриптов и логирования, неудобно для мониторинга в реальном времени.
- gpustat — Python-утилита, похожа на
nvidia-smi
, но чуть удобнее; нет графиков. - watch nvidia-smi — костыль, а не решение.
- glances — умеет показывать GPU, но не так подробно, как nvtop/ radeontop.
- Prometheus + Exporters — хорошо для сбора метрик, но не для интерактивного мониторинга.
Таблица сравнения
Утилита | Вендор | Графики | Процессы | Температура/Питание | Удобство |
---|---|---|---|---|---|
nvtop | NVIDIA | Да | Да | Да | Отлично |
radeontop | AMD | Да | Нет | Частично | Хорошо |
nvidia-smi | NVIDIA | Нет | Да | Да | Средне |
gpustat | NVIDIA | Нет | Да | Частично | Средне |
glances | Обе | Нет | Нет | Частично | Средне |
Интересные фишки и нестандартные способы использования
- Можно запускать
nvtop
илиradeontop
вtmux
илиscreen
и делиться сессией с коллегой черезssh
. - В связке с
watch -n 1 gpustat
можно быстро увидеть, кто грузит карту, а потом уже копать глубже черезnvtop
. - Можно писать свои скрипты для алертов (например, отправлять уведомление в Telegram, если температура выше 80°C или VRAM забита под завязку).
- В облаке (например, на VPS с GPU) удобно мониторить через
nvtop
даже по медленному каналу — интерфейс очень лёгкий. - Можно интегрировать вывод
nvtop
илиradeontop
в свои дашборды черезtmux
илиbyobu
.
Автоматизация и скрипты: что ещё можно выжать?
- Скрипт для автоалерта по загрузке GPU:
#!/bin/bash if nvidia-smi | grep -q "100%"; then echo "GPU fully loaded!" | mail -s "GPU Alert" [email protected] fi
Можно запускать по cron.
- Интеграция с Prometheus: Используй DCGM Exporter для сбора метрик, а
nvtop
— для интерактивного анализа. - Docker Healthcheck: В Dockerfile можно добавить healthcheck, который будет проверять загрузку GPU.
HEALTHCHECK --interval=30s CMD nvidia-smi | grep "No running processes found" || exit 1
- Автоматический рестарт контейнера при утечке памяти:
if nvidia-smi | grep "Out Of Memory"; then docker restart my_ml_container fi
Официальные ресурсы и документация
Выводы и рекомендации
Если ты работаешь с серверами с GPU (или только собираешься арендовать VPS с видеокартой — вот тут или выделенный сервер — вот тут), то nvtop и radeontop — маст-хэв в твоём арсенале. Это быстрый способ увидеть, что творится с твоими видеокартами в реальном времени, не выходя из консоли.
- Для NVIDIA — однозначно
nvtop
. Удобно, наглядно, информативно. - Для AMD —
radeontop
(альтернатив пока нет, но тоже весьма годно). - Для автоматизации — интегрируй с Prometheus, пиши свои алерты, используй в Docker healthcheck.
- Не забывай обновлять драйвера и проверять права на устройства!
Экспериментируй, автоматизируй, не бойся копаться в деталях. А если что — всегда можно запустить nvtop
в tmux
и просто залипнуть на красивые графики загрузки твоих видеокарт. Удачного мониторинга!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.