Ода любви к nvtop — консольный мониторинг GPU, который мы заслужили

7b7a879df367f4c5b23490f8dcd4f074.png

Привет, Хабр! Сегодня я хочу рассказать про одно маленькое сокровище мира Linux, которое решительно изменило то, как мы смотрим на мониторинг видеокарт. И нет, это не очередная утилита с кучей зависимостей и странным GUI, который выглядит так, будто его рисовали в 1998 году. Это nvtop — инструмент, который воплощает собой ту самую Unix-философию: «делай что-то одно, но делай это хорошо».

Любовь с первой команды

fde8d91ea2c9d117c82b1bf0a7f543f5.png

В мире Linux мы привыкли к тому, что любая, казалось бы, простая задача может превратиться в квест с поиском зависимостей, компиляцией из исходников и чтением древних манускриптов на форумах. Особенно когда речь заходит о чём-то, связанном с графическими картами. Казалось бы, что сложного в том, чтобы просто показать загрузку GPU? Но нет, всё всегда идёт не так, как хочется.

Но иногда случаются чудеса. И одно из таких чудес — установка nvtop в EndeavourOS (да и в любом другом Arch-based дистрибутиве):

sudo pacman -S nvtop

Одна команда, основной репозиторий, никаких плясок с AUR или git clone, подключением сторонних репозиториев. В 2024 году это всё ещё кажется какой-то магией, особенно если вспомнить, сколько обычно приходится танцевать с бубном, чтобы заставить работать почти любой инструмент для работы с видеокартами. Чего стоит один только проброс GPU в виртуалку, когда она у вас всего одна в ПК, и вы хотите переключаться между виртуалкой и хостовой ОС.

N — значит Neat

e3d8c619729ab3a33c512fd0a9508e12.png

И тут сразу хочется развеять главное заблуждение: многие думают, что nvtop — это очередная утилита от NVIDIA. Но нет, «N» здесь значит «Neat» (опрятный, чистый, аккуратный). Neat Videocard TOP — именно то, чем эта утилита и является. И знаете что? Это, пожалуй, первый случай в истории Linux, когда название программы полностью соответствует её сути.

А суть действительно проста и изящна: единый интерфейс для мониторинга любых видеокарт. От древней интегрированной Intel, которая ещё помнит первые версии Ubuntu, до огненной AMD с её извечным соревнованием драйверов. И конечно же, для любимой всеми NVIDIA, чья цена заставляет нервно вздрагивать бухгалтерию, а сообщения об ошибках драйверов — седеть системных администраторов.

Консоль — наше всё

67e5043de973734c16c7c102bbda3c78.png

Современные инструменты для мониторинга с графическими интерфейсами часто напоминают демо-сцену из 90-х: красивые графики, плавные анимации, градиенты и тени. И это было бы здорово, если бы не одно «но» — всё это великолепие жрёт ресурсы как не в себя. Запуск некоторых мониторов может стать настоящим испытанием даже для мощного компьютера.

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

Консоль же, в отличие от GUI — универсальна как швейцарский нож. Неважно, сидите ли вы за своим ноутбуком или подключаетесь по SSH к серверу на другом конце света — интерфейс будет одинаковым. Никаких проблем с X-сервером, никаких танцев с пробросом дисплея, никаких задержек из-за сетевой латентности. Просто подключился и смотришь.

А уж про эффективность и говорить нечего. В то время как графические мониторы системы соревнуются друг с другом в количестве красивых графиков и анимаций, часто забывая о том, сколько ресурсов они потребляют, отдельный привет KDE Plasma System Monitor, nvtop остаётся верен принципу минимализма. Он настолько легковесен, что его влияние на систему практически незаметно. Вы можете держать его запущенным часами в фоновом терминале, и он не будет мешать основной работе системы.

Всё и сразу

Что действительно подкупает в nvtop, так это то, что его интерфейс выглядит так, будто его делали люди для людей, а не роботы для роботов. В одном окне терминала вы видите абсолютно всё, что может понадобиться для мониторинга видеокарты.

Загрузка GPU показывается в реальном времени, причём не просто общий процент, а с разбивкой по разным типам нагрузки. Использование видеопамяти отображается не только в процентах, но и в абсолютных значениях, что помогает быстро понять отчего инференс очередной нейронки не идёт нормально и не порали выдать ей видеокарту с VRAM побольше. Энергопотребление и частоты работы GPU тоже всегда перед глазами, казалось бы, ну что особо толку от этого, но мы так пару раз пересобирая наш тестовый стенд вовремя замечали что при перестановке видеокарт забывали им подключать доппитание.

От дома до дата-центра

12ca303a05622e38a219c553e02ca742.jpg

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

И вот тут консольный интерфейс раскрывается во всей красе. Подключились по SSH, запустили nvtop, и сразу видно полную картину: какие карты сейчас работают, какие процессы их нагружают, нет ли проблем с температурой или памятью. Всё это без необходимости настраивать сложные системы мониторинга или пробрасывать графический интерфейс.

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

Философия, которая работает

Как это часто происходит с OpenSource инструментами — берут простую идею и пытаются сделать из неё комбайн, который умеет всё, но ничего толком в нормальном виде. Знаете эти программы, где тебе нужно нажать пятнадцать кнопок и открыть три меню, чтобы увидеть простейшую информацию? nvtop же следует классической Unix-философии: одна задача — один инструмент.

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

Вместо заключения

С Linux мы не редко сталкиваемся с такой ситуацией — берёшь простую утилиту, думаешь «ну, на пару раз попробовать», а через месяц понимаешь, что без неё уже как без рук. nvtop — именно из таких. Но не дай Бог, у утилиты будет настраиваемый внешний вид через конфиги, в таком случае большая часть времени будет потрачена на то, чтобы накрутить как можно больше красивостей под себя, пусть и в ущерб удобству, а затем делиться скриншотами где-нибудь на Reddit с другими такими же линуксоидами-дизайнерами.

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

И это, пожалуй, главное его достоинство: в мире, где каждая вторая программа пытается быть умнее пользователя, такая простота и прямолинейность — не баг, а фича. К слову, знали ли вы вообще про nvtop до нашего поста и что предпочитаете использовать для мониторинга GPU дома и в работе?

© Habrahabr.ru