# 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 ```bash 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/`: ```bash 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) ```bash nvidia-smi -pm 1 ``` ### Status prüfen ```bash 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.devices` NVIDIA in `compose.yml` NVIDIA-Bind-Mounts in `/etc/pve/lxc/101.conf` sind auskommentiert (Juni 2026). Nach CT-Neustart: ```bash 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_total` GPU-Anteil braucht Verifikation ohne Agent-Einfluss: ```bash 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) 1. `systemctl status nvidia-persistenced` — läuft er? 2. `nvidia-smi -pm 1` 3. LXC mit GPU-Mounts identifizieren: `grep nvidia /etc/pve/lxc/*.conf` 4. Prozesse: `nvidia-smi`, `fuser -v /dev/nvidia*` 5. 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 ```bash # 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 |