Знакът на КАГАМИ КАГАМИ
kagami.bg/academy · lesson · machine-readable viewUPDATED 2026-10-03
IDENTITY
module
GX10-04-39 · Monitoring a GB10-class machine: built-in DGX Dashboard, nvidia-smi, nvitop and a small custom page
series
GX10 (local AI server class: NVIDIA GB10, e.g. ASUS Ascent GX10 / DGX Spark)
level
Intermediate
duration
30–45 min (NVIDIA lists 30 min for the DGX Dashboard playbook)
prerequisites
A GB10-class machine with DGX OS, shell access (local or SSH), Python 3 with the venv module
trust_label
UPDATED 2026-10-03 (checked against NVIDIA DGX Spark documentation and the NVIDIA "DGX Dashboard" playbook, last updated 2026-07-31 per NVIDIA; package versions checked on PyPI and GitHub). NOT TESTED: no GB10 machine was available; no command in this lesson was run.
versions_seen
nvitop 1.7.1 · nvidia-ml-py 13.615.71 (imports as pynvml) · DCGM Exporter 4.8.4 · Prometheus v3.15.0 · Grafana v13.2.3 (all as listed on 2026-10-03)
language
human view: bg · english edition: /en/academy/gx10/ (same file name)
previous / next
GX10 series index / GX10 series index
PURPOSE

Learn what can and cannot be read from a unified-memory GB10-class machine and pick the lightest monitoring tool that answers the question: the built-in DGX Dashboard (port 11000, reached through NVIDIA Sync or an SSH tunnel), nvidia-smi, nvitop, a tiny local web page built on psutil and NVML, and a log-only temperature watcher. A heavier Prometheus + Grafana + DCGM Exporter stack is described but not given as a recipe because GB10 support was not verified.

KEY CONCEPTS
COMMANDS / PATHS
CHECKLIST
NEXT MODULE

Series index: kagami.bg/academy/gx10/ · related lessons: 04-122 (event dashboard with Grafana and Timescale), 04-10 (vLLM server) · offer: Quick experiment (kagami.bg/stalbata/)

SOURCES
TAGS
gx10nvidia-gb10monitoringdgx-dashboardnvidia-sminvitopunified-memory
ОБНОВЕНО · 03.10.2026

Следене на GB10 машина: вграденото табло, nvidia-smi и nvitop

Как да видиш какво прави машината ти — натоварване, памет, температура, процеси — без да вдигаш цяла инфраструктура. Започваме с това, което вече е на машината, и стигаме до малък собствен екран и тих пазач за температурата. Първо ще разберем и какво не може да се прочете от машина с обща памет.

⏱ 30–45 мин Средно GX10 DGX Dashboard · nvidia-smi · nvitop Python · SSH тунел
DGX Dashboard, nvidia-smi, nvitop🔒 локално Пакети от PyPI🌐 глобален
🔄
ОБНОВЕНО · 03.10.2026 — какво
Урокът е преработен по документацията на NVIDIA. Поставихме на първо място вграденото DGX Dashboard — старият урок не го споменаваше. Поправихме: четенето на памет (на машина с обща памет полетата на NVML не дават обща цифра — ползваме системния изглед), собствения екран (вече слуша само на 127.0.0.1 и се стига през SSH тунел; старият беше отворен към цялата мрежа на 0.0.0.0) и алармите (без бот и токен — пазачът записва в системния дневник). Махнахме: нарисувания „примерен“ екран с измислени числа, твърденията за граница на прегряване, брой метрики и готов панел от Grafana, готовия стек с latest версии и с парола, записана в файла, както и връзки към други модули, които не са сверени. Стекът с Prometheus, Grafana и DCGM Exporter остава само като описание: поддръжката на GB10 не е сверена.
⚠️
Какво не сме пускали сами
Нямахме машина от класа GB10, затова нито една команда от този урок не е пускана и няма етикет „ТЕСТВАНО“. Особено непроверени са: кои полета на nvidia-smi и NVML дават стойност на тази платформа, как изглежда nvitop при обща памет и дали DCGM Exporter поддържа GB10. Версиите на пакетите са проверени на 03.10.2026.

01Какво ще научиш

02Преди да започнеш

💡
Защо „обща памет“ променя всичко
При такава машина видеокартата няма собствена памет — ползва същата памет като процесора. Затова въпросът „колко памет е заета?“ има един отговор за цялата машина, а не отделен за видеокартата. Виж стъпка 1.

03Стъпки

  1. Какво показва машината и какво не

    По документацията на NVIDIA, на платформи с вградена видеокарта nvidia-smi показва в реда за памет „Memory-Usage: Not Supported“, макар че паметта по процеси се изписва. Това е очаквано, а не повреда: няма отделна видеопамет.

    Има и втора особеност. Програмният интерфейс cudaMemGetInfo може да покаже по-малко свободна памет, отколкото реално може да се отдели, защото процесорът може да освободи памет, като я премести в swap. NVIDIA препоръчва да се гледа и MemAvailable от системата. Затова за „колко памет остава на машината“ ползвай системния изглед:

    bash · на машината
    free -h
    grep -E "MemAvailable|SwapFree" /proc/meminfo
  2. Вграденото 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 те водят до рестарт — запиши работата си преди това.
  3. nvidia-smi: бърз поглед

    bash
    nvidia-smi
    watch -n 2 nvidia-smi
    nvidia-smi --query-gpu=utilization.gpu,temperature.gpu,power.draw --format=csv -l 2

    Първата команда прави снимка, втората я обновява на 2 секунди, третата изписва само избрани полета. ⚠️ Не сме пускали командите на GB10: някои полета могат да са празни („N/A“) заради вградената видеокарта.

  4. nvitop: процесите на живо

    nvitop е терминален изглед на видеокартата и процесите ѝ, нещо като htop. Инсталираме го в отделна „кутия“ (виртуална среда), за да не пипаме системния Python:

    bash
    python3 -m venv ~/mon-venv
    . ~/mon-venv/bin/activate
    pip install nvitop
    nvitop

    Изход — q. На 03.10.2026 на PyPI е версия 1.7.1. ⚠️ Не сме го пускали на GB10; някои колони за памет може да са празни по причината от стъпка 1.

  5. Малък собствен екран (по желание)

    Защо? Когато искаш да видиш няколко числа от браузъра, без да отваряш цялото табло. Скриптът чете паметта и процесора от системата, а температурата, натоварването и мощността — от NVML. Ако някое поле не се поддържа, връща null вместо да спре.

    bash
    . ~/mon-venv/bin/activate
    pip install fastapi uvicorn nvidia-ml-py psutil
    python · gx10_monitor.py
    from 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; версиите на пакетите не са закачени тук — за постоянна употреба ги закачи.
  6. Предупреждение за температура — без тайни

    Не ти трябват бот и токен. Пазач, който записва в системния дневник, е достатъчен; по-късно можеш да го свържеш със своя начин за известяване. Границата долу е примерна — задай своя по документацията на 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
    done
    bash
    chmod +x gpu_watch.sh
    ./gpu_watch.sh &
    journalctl -t gpu-watch --since "10 min ago"

    ⚠️ Не е пускано. За постоянна работа го сложи като системна услуга (отделна тема).

  7. По-голям стек: Prometheus, Grafana, DCGM Exporter

    Има смисъл, когато ти трябва история на показателите и графики за дълъг период. Това са три отделни програми: DCGM Exporter събира показатели от видеокартата, Prometheus ги пази, Grafana ги рисува. Версиите на 03.10.2026 по официалните им страници в GitHub:

    ПрограмаПоследно издание
    DCGM Exporter4.8.4 (18.09.2026)
    Prometheusv3.15.0 (25.09.2026)
    Grafanav13.2.3 (29.09.2026)
    ⚠️
    Не даваме готов стек
    Не сме сверили дали DCGM Exporter поддържа вградената видеокарта на GB10 и кои показатели дава там, а старият урок описваше готов панел и брой метрики без доказателство. Ако решиш да опиташ: закачи версиите, не публикувай портове към цялата мрежа (само 127.0.0.1 и тунел), а паролата на Grafana генерирай и пази в отделен файл с права 600 — никога в самия compose файл.

04Проверка

Тест

1. Какво означава „Memory-Usage: Not Supported“ в nvidia-smi на GB10?

2. Откъде е най-добре да четеш колко памет остава на цялата машина?

3. Как се отваря DGX Dashboard от друг компютър, без да се отваря към мрежата?

4. Защо собственият екран слуша на 127.0.0.1?

05Какво следва

06Източници

Страниците са отваряни на 03.10.2026.

  1. NVIDIA: Monitor Your AI Compute with DGX Dashboard 🌐 глобален — приложението, достъпът, рискът (последна промяна по NVIDIA: 31.07.2026).
  2. NVIDIA DGX Spark: DGX Dashboard — локален и отдалечен достъп, порт 11000.
  3. NVIDIA DGX Spark: известни особености — „Memory-Usage: Not Supported“, обща памет, cudaMemGetInfo и swap.
  4. PyPI: nvitop · PyPI: nvidia-ml-py — версии и описание.
  5. GitHub: DCGM Exporter · Prometheus · Grafana — издания и дати.