wentbackward/nv-monitor

Lightweight nVidia telemetry and terminal system monitor - built for any architecture - Jetson, GB10, GB200, H100

What it solves

nv-monitor is a lightweight, zero-dependency monitoring tool for NVIDIA GPU systems. It solves the problem of needing a high-performance, low-overhead way to track CPU, GPU, and memory utilization across single machines or clusters, particularly for high-end hardware like the DGX Spark or GB200.

How it works

Written in C, the tool reads system metrics from /proc and /sys and uses the NVIDIA Management Library (NVML) to gather GPU-specific data. It provides three primary ways to consume this data:

  1. TUI (Terminal User Interface): A real-time, color-coded dashboard showing per-core CPU usage (including ARM big.LITTLE architecture support), memory, GPU utilization, power draw, and active GPU processes.
  2. CSV Logger: A headless mode that logs all statistics to a file at configurable intervals.
  3. Prometheus Exporter: An OpenMetrics-compatible endpoint that exposes system metrics for integration into Prometheus/Grafana stacks.

Who it’s for

System administrators and ML engineers managing NVIDIA-powered Linux servers, especially those using ARM-based Grace CPUs or high-density GPU clusters (e.g., H100, GB200) where precise monitoring of unified memory and HugePages is required.

Highlights

  • Ultra-lightweight: Single binary under 80KB with no runtime dependencies.
  • Hardware-specific optimizations: Correctly handles unified memory, HugePages, and ARM big.LITTLE core topology.
  • Flexible output: Supports a real-time TUI, CSV logging, and a Prometheus metrics endpoint with optional Bearer token authentication.
  • Broad compatibility: Works across x86_64 and aarch64 architectures, supporting everything from Jetson Orin to datacenter-grade H100/GB200 systems.
  • Synthetic Load Generator: Includes demo-load to validate monitoring pipelines without needing complex benchmarking software.

Related

  • Project
  • Project
  • Project
  • Project
  • Project