Files
docu/pve2/09_GPU-Idle-vollstaendig.md
root 6f52d46267 Initiale Infrastruktur-Dokumentation pve1 und pve2.
Enthält Host-Doku, MQTT/HA, Git-Setup, Power-Monitoring und GPU-Idle (pve2).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 19:53:55 +02:00

5.0 KiB
Raw Permalink Blame History

GPU Idle & Power Monitoring — pve2

Stand: Juni 2026 · Host: pve2 · 2× NVIDIA GeForce GTX 1080

Ziel

GTX 1080 im Headless-Betrieb sollen im Leerlauf ~68 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: ~89 W, P8, Core 139 MHz
GPU1: ~89 W, P8, Core 139 MHz

Ursachen für hohen Idle-Verbrauch (P0/P5, 4070 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.devices NVIDIA in compose.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_total GPU-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 (~1545 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

# 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