2026/08/22

NVIDIA-Grafikkarten beim Stromverbrauch begrenzen

Meine RTX3080 Ti zieht bis zu 350 Watt. Das kann so heiß werden, dass Spiele langsamer laufen. Der Stromverbrauch lässt sich bei dieser Karte aber zwischen 100 und 370 Watt begrenzen.

Wie richtet man das so ein, dass sie bereits beim Start mit einem niedrigeren Limit läuft?

Ein systemd-Dienst ist zuverlässiger als zum Beispiel .bashrc, crontab oder /etc/rc.local, weil er beim Systemstart als Root läuft (NVIDIA-Dokumentation).

Dienst anlegen

Ersetze 200 durch die gewünschte Leistungsaufnahme in Watt:

sudoedit /etc/systemd/system/nvidia-power-limit.service

Füge Folgendes ein:

[Unit]
Description=Set NVIDIA GPU power limit
After=nvidia-persistenced.service
Wants=nvidia-persistenced.service
 
[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -i 0 -pl 200
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target

Speichere die Datei und aktiviere den Dienst:

sudo systemctl daemon-reload
sudo systemctl enable --now nvidia-power-limit.service

Der Befehl wird sofort ausgeführt und bei jedem Systemstart automatisch wiederholt.

Einstellung prüfen

Prüfe das konfigurierte Limit:

nvidia-smi -i 0 --query-gpu=power.limit --format=csv

Prüfe den Dienst:

systemctl status nvidia-power-limit.service

Falls der Dienst fehlschlägt, sieh dir das Boot-Log an:

journalctl -u nvidia-power-limit.service -b

Gültige Wattwerte zuerst prüfen

Deine GPU akzeptiert nur Werte innerhalb des unterstützten Bereichs:

nvidia-smi -i 0 -q -d POWER

Achte auf:

Min Power Limit
Max Power Limit

Verwende einen Wert zwischen diesen beiden Grenzen. Die Syntax von NVIDIA lautet:

sudo nvidia-smi -i 0 -pl <watts>

Zum Beispiel:

sudo nvidia-smi -i 0 -pl 180

Falls /usr/bin/nvidia-smi in deiner Distribution nicht existiert, ermittle den Pfad mit:

command -v nvidia-smi

Verwende diesen Pfad anschließend in ExecStart. Bei mehreren GPUs kannst du einen weiteren Dienstbefehl hinzufügen, zum Beispiel:

ExecStart=/usr/bin/nvidia-smi -i 0 -pl 200
ExecStart=/usr/bin/nvidia-smi -i 1 -pl 200

Beachte, dass einige Kombinationen aus Treiber und GPU das Limit zurücksetzen können, wenn der GPU-Treiber neu geladen wird, obwohl der systemd-Dienst es beim Systemstart korrekt setzt. Ein systemd-Timer, der einige Sekunden nach dem Start ausgeführt wird, kann diesen Fall abfangen.

Diskussion

Geben Sie Ihren Kommentar ein: