Dashboard GPU in tempo reale
nvidia-smi è lo strumento principale per monitorare temperatura, utilizzo, memoria e processi delle GPU NVIDIA.
1. Comandi base
# Stato completo
nvidia-smi
# Monitoraggio continuo (ogni 2 secondi)
nvidia-smi -l 2
# Formato compatto
nvidia-smi --query-gpu=name,temperature.gpu,utilization.gpu,memory.used,memory.total,power.draw --format=csv
2. Query specifiche
# Solo temperatura
nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
# Processi che usano la GPU
nvidia-smi --query-compute-apps=pid,name,used_memory --format=csv
# Totale VRAM usata
nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits
3. Script di raccolta dati
#!/bin/bash
# Raccogliere dati GPU da tutti i server
SERVERS="192.168.1.81 192.168.1.90 192.168.1.108"
for S in $SERVERS; do
echo "=== $S ==="
ssh root@$S "nvidia-smi --query-gpu=name,temperature.gpu,utilization.gpu,memory.used,memory.total --format=csv" 2>/dev/null
done
4. Output JSON per dashboard web
nvidia-smi --query-gpu=index,name,temperature.gpu,utilization.gpu,memory.used,memory.total,power.draw \
--format=csv,noheader,nounits | while IFS=, read idx name temp util mem_used mem_total power; do
echo "{\"gpu\":$idx,\"name\":\"$name\",\"temp\":$temp,\"util\":$util,\"mem_used\":$mem_used,\"mem_total\":$mem_total,\"power\":$power}"
done
5. Alert temperatura
TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader | sort -rn | head -1)
if [ "$TEMP" -gt 85 ]; then
echo "GPU temperatura critica: ${TEMP}C" | mail -s "GPU ALERT" admin@esempio.it
fi
Il sito raccoglie dati GPU ogni minuto da tutti i server e li visualizza nella dashboard homelab in tempo reale.