Home » Визуализация производительности GPU с nvtop и radeontop — современные гайды
Визуализация производительности GPU с nvtop и radeontop — современные гайды

Визуализация производительности 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 и просто залипнуть на красивые графики загрузки твоих видеокарт. Удачного мониторинга!


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

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

Leave a reply

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