| Maßnahme | Was sie bewirkt & warum sie bei Zen 2 sinnvoll ist | Wie man es einstellt |
|---|
| Kernel‑Governor “schedutil” verwenden | Der schedutil‑Governor nutzt die Scheduler‑Utilisation, um schneller auf Laständerungen zu reagieren und niedrigere Frequenzen auszuwählen. Das reduziert Leerlauf‑Energie ohne nennenswerte Latenz bei Spitzenlast. | bash sudo cpupower frequency-set -g schedutil |
| amd-pstate aktivieren (statt acpi-cpufreq) – passive Mode | amd-pstate nutzt die CPPC‑Hardware und bietet feinere Frequenzschritte sowie den EPP‑Energiepräferenz‑Mechanismus. Im passiven Modus wählt der Kernel selbstständig eine geeignete Leistungsklasse, ohne dass der Benutzer ständig eingreifen muss. | bash sudo modprobe amd-pstate<br>oder beim Booten den Kernel‑Parameter hinzufügen:<br>amd-pstate=passive |
| EPP (Energy Performance Preference) anpassen | EPP ist ein ACPI‑CPPC‑Hint, der dem Hardware‑Power‑Algorithmus mitteilt, ob er Leistung oder Effizienz bevorzugen soll. Für Server/Workloads im Rechenzentrum empfiehlt sich balance_performance (AC) bzw. performance nur bei absoluter Spitzenleistungsanforderung. | bash # passive Mode aktiviert<br>echo balance_performance > /sys/devices/system/cpu/cpufreq/policy0/epp |
| CPU‑Freq‑Governor pro Prozessorkern manuell setzen (nur, wenn bestimmte Cores permanent mit niedrigerer Frequenz laufen sollen) | Für spezielle Workloads (z. B. Batch‑Jobs auf dedizierten Knoten) kann das Festsetzen des Governors powersave den Energieverbrauch drastisch senken – allerdings zu Lasten der Latenz. | bash sudo cpupower frequency-set -c 0-7 -g powersave |
| Turbo‑Boost (Core‑Performance‑Boost) deaktivieren oder begrenzen | Turbo‑Boost erhöht die Frequenz auf Kosten höherer Spannung und Wärmeentwicklung. Das Deaktivieren oder Begrenzen des Maximal‑Takts spart Energie, wenn maximale Leistung nicht ständig benötigt wird. | BIOS/UEFI → “Core Performance Boost” = Disabled oder “Maximum Turbo Frequency” auf einen niedrigeren Wert setzen.<br>Alternativ via cpupower:<br>sudo cpupower frequency-set -u 2.8GHz (maximaler Frequenzgrenzwert) |
| Package‑Power‑Limit (PPL) im BIOS senken | PPL begrenzt die maximale Leistung des gesamten Sockets. Ein niedrigeres Limit zwingt den Prozessor, früher in tiefere C‑States zu gehen und reduziert den durchschnittlichen Energieverbrauch bei gleichbleibender Last. | BIOS → “Package Power Limit” oder “PPL” auf einen Wert < TDP (z.B. 180 W statt 200 W). |
| xGMI‑Link‑Width Management | Bei geringer Netzwerk‑/Interconnect‑Last kann das Herunterfahren von xGMI‑Lanes die Energie für den Interconnect sparen, ohne dass die CPU‑Leistung leidet. | BIOS → “xGMI Link Width Control” = Manual, dann z.B. 8 Lanes (oder je nach Plattform 2). |
| SoC‑Efficiency‑Mode im BIOS aktivieren | Der SoC‑Effizienzmodus passt dynamisch die Kern‑ und Fabric‑Taktwerte, um bei konstanter Last einen besseren Performance‑pro‑Watt zu erzielen. Für reine Durchsatzworkloads ist dies ideal. | BIOS → “SoC Efficiency Mode” = Enabled. |
| Transparent Huge Pages (THP) verwenden | THP reduziert die Overhead der Page‑Table‑Walk und verbessert den Speicher‑Durchsatz, was weniger CPU‑Wakeup‑Zyklen bedeutet. Für Datenbanken oder andere speicherintensive Workloads ist dies empfehlenswert (Linux 6.x aktiviert THP standardmäßig). | bash echo always > /sys/kernel/mm/transparent_hugepage/enabled |
| CPU‑C‑States im BIOS nicht einschränken | C‑States (z. B. C1, C3) erlauben es dem Prozessor, bei Leerlauf in tiefere Energiesparmodi zu gehen. Das BIOS sollte keine unnötigen Beschränkungen setzen (keine “C‑State Limit”). | BIOS → “CPU C‑States” = Unlimited. |
| tuned Profil “throughput-performance” nutzen | tuned passt Kernel‑Parameter, CPU‑Governor, VM‑Einstellungen und I/O‑Scheduler automatisch für maximale Durchsatzleistung bei gleichzeitigem Energie‑Rücksicht. Es ist eine schnelle Methode, ohne jede Option manuell zu konfigurieren. | bash sudo tuned-adm profile throughput-performance |
| cpufrequtils / cpupower Dienst aktiv halten | Der Daemon überwacht den CPU‑Governor und stellt sicher, dass Änderungen an der Leistungsklasse oder EPP auch nach einem Neustart bestehen bleiben. | bash sudo systemctl enable --now cpupower.service |