Следене на GB10 машина: вграденото табло, nvidia-smi и nvitop
Как да видиш какво прави машината ти — натоварване, памет, температура, процеси — без да вдигаш цяла инфраструктура. Започваме с това, което вече е на машината, и стигаме до малък собствен екран и тих пазач за температурата. Първо ще разберем и какво не може да се прочете от машина с обща памет.
127.0.0.1 и се стига през SSH тунел; старият беше отворен към цялата мрежа на 0.0.0.0) и алармите (без бот и токен — пазачът записва в системния дневник). Махнахме: нарисувания „примерен“ екран с измислени числа, твърденията за граница на прегряване, брой метрики и готов панел от Grafana, готовия стек с latest версии и с парола, записана в файла, както и връзки към други модули, които не са сверени. Стекът с Prometheus, Grafana и DCGM Exporter остава само като описание: поддръжката на GB10 не е сверена.
nvidia-smi и NVML дават стойност на тази платформа, как изглежда nvitop при обща памет и дали DCGM Exporter поддържа GB10. Версиите на пакетите са проверени на 03.10.2026.01Какво ще научиш
- Какво може и какво не може да се прочете от машина с обща памет (и защо
nvidia-smiпише „Not Supported“). - Как да отвориш вграденото DGX Dashboard — на самата машина и от разстояние.
- Как да ползваш
nvidia-smiиnvitopза бърз поглед. - Как да направиш малък собствен екран, който не е отворен към мрежата.
- Как да получиш предупреждение за висока температура без никакви тайни.
- Кога има смисъл от по-голям стек и какво да провериш, преди да го вдигнеш.
02Преди да започнеш
- Машина от класа NVIDIA GB10 (например ASUS Ascent GX10 или DGX Spark) с DGX OS.
- Достъп до терминала на машината — директно или по SSH.
- Python 3 с модула
venv(ако липсва, инсталира се пакетътpython3-venv) — нужен е за стъпки 4 и 5. - Интернет за изтегляне на пакетите от PyPI.
- Желателно е нещо да работи на машината (например модел), за да има какво да се гледа.
03Стъпки
-
Какво показва машината и какво не
По документацията на NVIDIA, на платформи с вградена видеокарта
nvidia-smiпоказва в реда за памет „Memory-Usage: Not Supported“, макар че паметта по процеси се изписва. Това е очаквано, а не повреда: няма отделна видеопамет.Има и втора особеност. Програмният интерфейс
cudaMemGetInfoможе да покаже по-малко свободна памет, отколкото реално може да се отдели, защото процесорът може да освободи памет, като я премести в swap. NVIDIA препоръчва да се гледа иMemAvailableот системата. Затова за „колко памет остава на машината“ ползвай системния изглед:bash · на машинатаfree -h grep -E "MemAvailable|SwapFree" /proc/meminfo -
Вграденото DGX Dashboard
Защо първо то? Вече е на машината, не иска инсталиране и показва текущите показатели, обновяванията и вграден JupyterLab (по NVIDIA).
- На самата машина: бутонът „Show Apps“ в долния ляв ъгъл на работния плот, после „DGX Dashboard“.
- От разстояние: през NVIDIA Sync (един бутон, адресът е
http://localhost:11000) или с ръчен SSH тунел:
bash · на твоя компютърssh -L 11000:localhost:11000 <потребител>@<адрес-на-машината>Остави връзката отворена и отвори
http://localhost:11000в браузъра си. Тунелът е „защитен коридор“: таблото остава затворено за мрежата, а ти го виждаш като локално.⚠️Обновяванията рестартират машинатаОт таблото се прилагат обновявания на пакети и фърмуер (нужни саsudoправа). По ръководството на NVIDIA те водят до рестарт — запиши работата си преди това. -
nvidia-smi: бърз поглед
bashnvidia-smi watch -n 2 nvidia-smi nvidia-smi --query-gpu=utilization.gpu,temperature.gpu,power.draw --format=csv -l 2Първата команда прави снимка, втората я обновява на 2 секунди, третата изписва само избрани полета. ⚠️ Не сме пускали командите на GB10: някои полета могат да са празни („N/A“) заради вградената видеокарта.
-
nvitop: процесите на живо
nvitopе терминален изглед на видеокартата и процесите ѝ, нещо катоhtop. Инсталираме го в отделна „кутия“ (виртуална среда), за да не пипаме системния Python:bashpython3 -m venv ~/mon-venv . ~/mon-venv/bin/activate pip install nvitop nvitopИзход —
q. На 03.10.2026 на PyPI е версия 1.7.1. ⚠️ Не сме го пускали на GB10; някои колони за памет може да са празни по причината от стъпка 1. -
Малък собствен екран (по желание)
Защо? Когато искаш да видиш няколко числа от браузъра, без да отваряш цялото табло. Скриптът чете паметта и процесора от системата, а температурата, натоварването и мощността — от NVML. Ако някое поле не се поддържа, връща
nullвместо да спре.bash. ~/mon-venv/bin/activate pip install fastapi uvicorn nvidia-ml-py psutilpython · gx10_monitor.pyfrom fastapi import FastAPI from fastapi.responses import HTMLResponse import psutil import pynvml app = FastAPI() pynvml.nvmlInit() gpu = pynvml.nvmlDeviceGetHandleByIndex(0) def safe(fn): try: return fn() except pynvml.NVMLError: return None @app.get("/api/stats") def stats(): mem = psutil.virtual_memory() power = safe(lambda: pynvml.nvmlDeviceGetPowerUsage(gpu) / 1000) return { "gpu_util_pct": safe(lambda: pynvml.nvmlDeviceGetUtilizationRates(gpu).gpu), "gpu_temp_c": safe(lambda: pynvml.nvmlDeviceGetTemperature(gpu, pynvml.NVML_TEMPERATURE_GPU)), "power_w": None if power is None else round(power, 1), "mem_used_gb": round((mem.total - mem.available) / 1024**3, 1), "mem_total_gb": round(mem.total / 1024**3, 1), "cpu_pct": psutil.cpu_percent(interval=0.2), } PAGE = """<!doctype html> <meta charset="utf-8"> <title>Следене</title> <body style="font-family:monospace;padding:1rem"> <h2>Следене на машината</h2> <pre id="out">зареждане…</pre> <script> async function tick() { const r = await fetch('/api/stats'); const d = await r.json(); document.getElementById('out').textContent = JSON.stringify(d, null, 2); } tick(); setInterval(tick, 2000); </script> """ @app.get("/", response_class=HTMLResponse) def page(): return PAGEСтартирай го само към самата машина и го отвори през тунел:
bash# на машината uvicorn gx10_monitor:app --host 127.0.0.1 --port 8080 # на твоя компютър ssh -L 8080:localhost:8080 <потребител>@<адрес-на-машината> # после отвори http://localhost:8080✅Никога 0.0.0.0 без защитаЕкранът няма вход с парола. Ако го вържеш към0.0.0.0, всеки в мрежата ти го вижда. Адресът127.0.0.1плюс SSH тунел е правилният начин. ⚠️ Скриптът не е пускан на GB10; версиите на пакетите не са закачени тук — за постоянна употреба ги закачи. -
Предупреждение за температура — без тайни
Не ти трябват бот и токен. Пазач, който записва в системния дневник, е достатъчен; по-късно можеш да го свържеш със своя начин за известяване. Границата долу е примерна — задай своя по документацията на NVIDIA за твоята машина.
bash · gpu_watch.sh#!/usr/bin/env bash LIMIT=80 # °C — примерна граница, задай своя while true; do T=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | head -n1) if [ "$T" -gt "$LIMIT" ] 2>/dev/null; then logger -t gpu-watch "Температура на видеокартата: ${T} °C (граница ${LIMIT} °C)" fi sleep 10 donebashchmod +x gpu_watch.sh ./gpu_watch.sh & journalctl -t gpu-watch --since "10 min ago"⚠️ Не е пускано. За постоянна работа го сложи като системна услуга (отделна тема).
-
По-голям стек: Prometheus, Grafana, DCGM Exporter
Има смисъл, когато ти трябва история на показателите и графики за дълъг период. Това са три отделни програми: DCGM Exporter събира показатели от видеокартата, Prometheus ги пази, Grafana ги рисува. Версиите на 03.10.2026 по официалните им страници в GitHub:
Програма Последно издание DCGM Exporter 4.8.4 (18.09.2026) Prometheus v3.15.0 (25.09.2026) Grafana v13.2.3 (29.09.2026) ⚠️Не даваме готов стекНе сме сверили дали DCGM Exporter поддържа вградената видеокарта на GB10 и кои показатели дава там, а старият урок описваше готов панел и брой метрики без доказателство. Ако решиш да опиташ: закачи версиите, не публикувай портове към цялата мрежа (само127.0.0.1и тунел), а паролата на Grafana генерирай и пази в отделен файл с права 600 — никога в самия compose файл.
04Проверка
- Можеш да обясниш защо
nvidia-smiпише „Memory-Usage: Not Supported“ и откъде четеш паметта. - DGX Dashboard се отваря — на машината или през тунел.
nvidia-smiиnvitopпоказват видеокартата, докато работи модел.- Собственият екран отговаря само на
127.0.0.1и се достига през тунел. - В нито един файл няма парола, токен или друга тайна.
Тест
1. Какво означава „Memory-Usage: Not Supported“ в nvidia-smi на GB10?
2. Откъде е най-добре да четеш колко памет остава на цялата машина?
3. Как се отваря DGX Dashboard от друг компютър, без да се отваря към мрежата?
4. Защо собственият екран слуша на 127.0.0.1?
05Какво следва
06Източници
Страниците са отваряни на 03.10.2026.
- NVIDIA: Monitor Your AI Compute with DGX Dashboard 🌐 глобален — приложението, достъпът, рискът (последна промяна по NVIDIA: 31.07.2026).
- NVIDIA DGX Spark: DGX Dashboard — локален и отдалечен достъп, порт 11000.
- NVIDIA DGX Spark: известни особености — „Memory-Usage: Not Supported“, обща памет,
cudaMemGetInfoи swap. - PyPI: nvitop · PyPI: nvidia-ml-py — версии и описание.
- GitHub: DCGM Exporter · Prometheus · Grafana — издания и дати.