CPU Governor und Energieoptionen: Server effizient betreiben

Die effiziente Nutzung von CPU-Ressourcen ist ein wichtiger Aspekt beim Betrieb von Linux-Servern. Durch die Wahl des richtigen CPU-Governors und die Konfiguration von Energieoptionen lassen sich Energieverbrauch, Wärmeentwicklung und Performance gezielt steuern. Dieser Artikel zeigt, wie Sie CPU-Governors einstellen, Energieoptionen prüfen und anpassen sowie Monitoring nutzen, um Ihre Server effizient zu betreiben.

Grundlagen der CPU-Governors

Ein CPU-Governor steuert, wie die CPU-Frequenz dynamisch angepasst wird. Linux bietet verschiedene Modi, die jeweils unterschiedliche Ziele verfolgen:

  • performance: CPU läuft immer mit maximaler Frequenz, höchste Leistung, höherer Energieverbrauch.
  • powersave: CPU läuft möglichst niedrig, energiesparend, geringere Performance.
  • ondemand: CPU-Frequenz passt sich je nach Last dynamisch an, ausgewogen zwischen Performance und Energieverbrauch.
  • conservative: Ähnlich wie ondemand, aber Frequenzänderungen erfolgen langsamer, noch energiesparender.
  • schedutil: Nutzt Scheduler-Informationen für schnelle und effiziente Frequenzanpassung, moderner Standard in aktuellen Kernel-Versionen.

Aktuellen CPU-Governor prüfen

Um den aktuell aktiven Governor pro CPU-Core zu prüfen, können Sie folgende Befehle nutzen:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Die Ausgabe zeigt für jeden CPU-Core den verwendeten Governor. Alternativ können Sie das Tool cpupower nutzen:

sudo apt install linux-tools-common linux-tools-$(uname -r)
sudo cpupower frequency-info

CPU-Governor temporär ändern

Für kurzfristige Tests oder Performance-Optimierungen kann der Governor ohne Neustart geändert werden:

sudo cpupower frequency-set -g performance

Oder direkt pro Core:

echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

CPU-Governor dauerhaft setzen

Damit die Einstellung nach einem Neustart erhalten bleibt, müssen Konfigurationsdateien angepasst werden:

  • Systemd: Erstellen Sie eine Service-Datei /etc/systemd/system/cpupower.service mit folgendem Inhalt:
    [Unit]
    Description=Set CPU governor
    After=multi-user.target
    

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/cpupower frequency-set -g performance
    RemainAfterExit=yes

    [Install]
    WantedBy=multi-user.target

  • Aktivieren und starten:
    sudo systemctl enable cpupower.service
    sudo systemctl start cpupower.service

Energieoptionen prüfen

Zusätzlich zu den Governors kann die CPU-Energieverwaltung über ACPI und RAPL (Running Average Power Limit) gesteuert werden.

  • Power-States prüfen:
    cat /sys/devices/system/cpu/cpu0/cpuidle/state*/name
  • RAPL Limits anzeigen:
    sudo cat /sys/class/powercap/intel-rapl/intel-rapl:0/energy_uj
  • Energieverbrauch überwachen:
    sudo turbostat 1

Performance vs. Energie sparen

Die Wahl des richtigen Governors hängt vom Einsatzzweck ab:

  • Hochperformante Webserver oder Datenbanken: performance oder schedutil.
  • Home-Server oder selten belastete Systeme: powersave oder conservative.
  • Workloads mit Spitzenlast: ondemand oder schedutil für flexible Anpassung.

Feintuning über sysfs

Für detailliertes Tuning können einzelne Parameter direkt über sysfs angepasst werden:

  • Maximal- und Minimalfrequenz setzen:
    echo 2.0GHz | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
    echo 1.2GHz | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
  • C-States limitieren, um Latenz zu verringern:
    echo 1 | sudo tee /sys/module/intel_idle/parameters/max_cstate

Monitoring und Validierung

Kontinuierliches Monitoring stellt sicher, dass die Änderungen wie gewünscht greifen:

  • CPU-Frequenz prüfen:
    watch -n 1 "cat /proc/cpuinfo | grep 'MHz'"
  • Governor-Status:
    watch -n 1 "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor"
  • Systemweite Last:
    top
    htop
  • Power-Events:
    journalctl -k | grep -i cpu

Best Practices

  • Für Server mit konstant hoher Last performance oder schedutil wählen.
  • Bei schwankender Last ondemand testen, ggf. conservative.
  • Regelmäßig die CPU-Frequenz und Energieverbrauch überwachen, um Engpässe zu erkennen.
  • Systemd-Service für dauerhafte Governor-Einstellungen einrichten.
  • Firmware- und BIOS-Einstellungen prüfen, z.B. Intel SpeedStep oder AMD Cool’n’Quiet, da diese das Verhalten beeinflussen.

Fazit

Durch die gezielte Konfiguration von CPU-Governors und Energieoptionen lässt sich der Linux-Serverbetrieb effizient gestalten. Performance-intensive Systeme profitieren von maximaler CPU-Leistung, während energiearme Szenarien durch angepasste Governors und Limits den Stromverbrauch reduzieren. Monitoring und regelmäßige Anpassungen sichern eine stabile und performante Infrastruktur.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles