Enthält Host-Doku, MQTT/HA, Git-Setup, Power-Monitoring und GPU-Idle (pve2). Co-authored-by: Cursor <cursoragent@cursor.com>
5.0 KiB
GPU Idle & Power Monitoring — pve2
Stand: Juni 2026 · Host: pve2 · 2× NVIDIA GeForce GTX 1080
Ziel
GTX 1080 im Headless-Betrieb sollen im Leerlauf ~6–8 W pro GPU (P8) verbrauchen und bei Bedarf für LXC/Compute verfügbar bleiben — ohne GPU-Passthrough an VMs.
Typische Idle-Messung bei korrekter Konfiguration:
GPU0: ~8–9 W, P8, Core 139 MHz
GPU1: ~8–9 W, P8, Core 139 MHz
Ursachen für hohen Idle-Verbrauch (P0/P5, 40–70 W gesamt)
| Ursache | Symptom | Fix |
|---|---|---|
| Persistence Mode aus / Daemon tot | P0 oder P5, Idle: Not Active |
nvidia-persistenced + -pm 1 (siehe unten) |
| NVIDIA-Devices in LXC ohne Nutzung | Treiber hält GPUs wach, Wechsel 139↔1657 MHz | Mounts entfernen (CT 101) |
| Echter GPU-Load | Prozesse in nvidia-smi, Encoder/Decoder > 0 |
Prozess finden und beenden |
Häufiges nvidia-smi-Polling |
Kurzzeitiges Aufwachen | GPU-Messung seltener (z. B. 60 s) |
| Neuer Treiber (580.x) ohne PM | Pascal bleibt in P5 | Persistence Mode ist Pflicht |
Nicht zutreffend auf pve2: VFIO-GPU-Passthrough (GPUs hängen am Host-Treiber, nicht an VMs).
1. NVIDIA Persistence Mode (Pflicht für Headless P8)
Auf Headless-Linux-Systemen ohne Display schaltet der Treiber GTX-1080-Karten nach Last oft nicht zuverlässig in P8 zurück, wenn Persistence Mode aus ist.
Prüfen
nvidia-smi --query-gpu=index,power.draw,pstate,persistence_mode,clocks.gr --format=csv
Erwartung im Idle: P8, Enabled, ~139 MHz Core.
Dauerhaft einrichten (pve2)
Service-Dateien liegen im Repo unter deploy/nvidia-persistenced/:
cp deploy/nvidia-persistenced/nvidia-persistenced.service /etc/systemd/system/
mkdir -p /etc/systemd/system/nvidia-persistenced.service.d
cp deploy/nvidia-persistenced/override.conf /etc/systemd/system/nvidia-persistenced.service.d/
systemctl daemon-reload
systemctl enable --now nvidia-persistenced
Wichtig: Die Option --user-persistence-mode ist ungültig und ließ den Dienst sofort wieder beenden — daher der Fix im Repo.
Manuell (bis Reboot)
nvidia-smi -pm 1
Status prüfen
systemctl status nvidia-persistenced
nvidia-smi -q | grep -E 'Performance State|Idle|Persistence'
fuser -v /dev/nvidia* # sollte leer sein im Idle
2. LXC: Wer braucht /dev/nvidia*?
| CT | Name | GPU-Mounts | Grund |
|---|---|---|---|
| 101 | docker | Nein (entfernt) | Frigate nutzt Intel iGPU (VAAPI), NVIDIA in compose.yml auskommentiert |
| 110 | AIDEV | Ja | Jupyter/ML bei Bedarf |
| 109 | media | Nur wenn aktiv genutzt | Gestoppt → kein Mount nötig |
Frigate (CT 101)
- Detector: OpenVINO (CPU/iGPU)
- Record-Streams:
hwaccel_args: preset-vaapi - Docker-Devices:
/dev/dri/renderD128,/dev/dri/card0(Intel) - Kein
deploy.resources.devicesNVIDIA incompose.yml
NVIDIA-Bind-Mounts in /etc/pve/lxc/101.conf sind auskommentiert (Juni 2026). Nach CT-Neustart:
pct reboot 101
pct exec 101 -- ls /dev/nvidia* # sollte fehlen
pct exec 101 -- docker ps # frigate healthy
3. Power-Monitoring (pve-power-mqtt)
Der Agent liest GPU-Leistung via nvidia-smi. Das ist kein Dauerlast-Compute, kann aber GPUs kurz aus P8 wecken.
Empfehlung:
- CPU/RAPL: alle 5 s (MQTT → Home Assistant)
- GPU: seltener messen oder nur wenn
estimated_totalGPU-Anteil braucht
Verifikation ohne Agent-Einfluss:
systemctl stop pve-power-mqtt
sleep 60
nvidia-smi --query-gpu=power.draw,pstate --format=csv
systemctl start pve-power-mqtt
4. Troubleshooting
GPUs hängen in P0/P5 (~15–45 W)
systemctl status nvidia-persistenced— läuft er?nvidia-smi -pm 1- LXC mit GPU-Mounts identifizieren:
grep nvidia /etc/pve/lxc/*.conf - Prozesse:
nvidia-smi,fuser -v /dev/nvidia* - Host neu starten (letzter Ausweg)
Wechsel zwischen 139 MHz und 1657 MHz (eine GPU ~44 W)
Typisch wenn mehrere Consumer den Treiber ansprechen (LXC-Mounts + Monitoring). CT 101 ohne NVIDIA-Mounts behebt einen großen Teil.
Dummy-HDMI-Stecker
Nur erwägen, wenn mit Persistence Mode weiterhin kein P8 erreichbar ist. Auf pve2 aktuell nicht nötig (P8 stabil mit persistenced).
Treiber
Installiert: 580.95.05 (Pascal). Für Idle ist Persistence Mode wichtiger als Downgrade — bei Bedarf 550.x LTS testen.
5. Referenz-Befehle
# Schnellcheck
nvidia-smi
# Power über Zeit (15 s Abstand)
watch -n 15 'nvidia-smi --query-gpu=index,power.draw,pstate,clocks.gr --format=csv'
# LXC GPU-Konfiguration
grep -H nvidia /etc/pve/lxc/*.conf
# MQTT Power Agent
systemctl status pve-power-mqtt
journalctl -u pve-power-mqtt -f
Änderungshistorie
| Datum | Änderung |
|---|---|
| 2026-06-27 | CT 101: NVIDIA-Mounts entfernt (Frigate = VAAPI) |
| 2026-06-27 | nvidia-persistenced repariert (ungültiger CLI-Flag entfernt) |
| 2026-06-27 | Doku angelegt, P8 Idle ~8 W pro GPU verifiziert |