Akkulaufzeit unter OpenSUSE optimieren
Mein betagter DualCore-Rechner, ein Acer Aspire 2920, glüht, und der Lüfter rauscht nach wenigen Sekunden schon gut los. Mit ein paar Maßnahmen zum Energiesparen und zum Drosseln der CPU köchelt der Laptop nicht mehr ganz so stark vor sich hin und der Akku hält nun etwas länger durch. Für normale Anwendungen und XFCE als Desktop reicht die Leistung trotzdem noch locker aus.
Stromsparen mit TLP
Mit TLP kann man Gnu/Linux basierten Systemen im Allgemeinen und OpenSUSE im Besonderen die Feinheiten des Stromsparens beibringen und muss sich dabei nicht mit Detailwissen herumschlagen. In der Standardkonfiguration ist TLP bereits auf Akkulaufzeit optimiert und kann daher einfach installiert, aktiviert und vergessen werden:
sudo su zypper install tlp systemctl enable tlp.service systemctl enable tlp-sleep.service |
Besser swappen
Das Optimieren des Swap-Verhaltens hilft zwar nicht dabei, Strom zu sparen, aber die SSD zu schonen, wenn man festlegt, wann der Kernel Daten aus dem Arbeitsspeicher in die Swap-Partition verschieben soll. Die swappiness wird dabei mit einem Wert von 0 bis 100 angegeben. Bei 0 wird nur dann ausgelagert, wenn es gar nicht mehr anders geht, weil der Arbeitsspeicher voll ist. Bei einer swappiness von 100 wird der Arbeitsspeicher kaum genutzt. Standardmäßig ist 60 eingestellt, was man mit dem folgenden Befehl herausfinden kann:
sysctl vm.swappiness |
Die Einstellung der swappiness ändert man mit einem Editor seiner Wahl in der Datei /etc/sysctl.conf
und hängt dort am Ende folgende Zeilen an:
vm.swappiness=1 vm.vfs_cache_pressure=50 |
Mit dem neuen Wert für vfs_cache_pressure
stellt man die Tendenz des Kernels ein, Speicher zurückzufordern, der zum Zwischenspeichern von Verzeichnissen und Inode Objekten zugeteilt wurde, zu verringern. Mit dieser und dem neuen Wert für die swappiness werden die Schreibzugriffe auf die Festplatte weniger und der Laptop arbeitet schneller.
Dabei muss man beachten, dass systemd-sysctl
nicht die Datei /etc/sysctl.conf
selbst direkt verarbeitet, sondern den Link unter /etc/sysctl.d/99-sysctl.conf
auf die /etc/sysctl.conf
. Sollte der Link aus irgendwelchen Gründen nicht vorhanden sein, kann man ihn einfach erstellen:
ln -s /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf |
Energiesparplan
Governors regeln Energiesparpläne für die CPU. Um herauszufinden, welcher Governor für den an die eigene CPU angepassten Energiesparplan überhaupt in Frage kommt, schaut man mit dem Befehl cpupower frequency-info
nach. Für den DualCore des Acers kommen als mögliche Regler powersave, ondemand oder performance in Frage. Während das voreingestellte Performance den Prozessor auf die höchste Frequenz einstellt, taktet Ondemand, was in der Regel empfohlen wird, den Prozessor je nach Systemlast herauf und herunter, während Powersave ihn auf die niedrigste Frequenz einstellt.
Den Governor stellt man ebenfalls mit dem Befehl cpupower
ein:
cpupower frequency-set -g powersave |
Damit der Governor auch nach dem nächsten Systemstart wieder aktiv ist, kann man ihn durch systemd
beim Start ausführen lassen. Dazu erstellt man zuerst die Datei /etc/systemd/system/governor.service
:
[Unit] Description=CPU Governor [Service] Type=idle Environment="TERM=dumb" ExecStart=/usr/bin/cpupower frequency-set -g powersave [Install] WantedBy=multi-user.target |
Nun lädt man noch die Konfiguration des systemd
-Managers neu und aktiviert den Governor-Service:
systemctl daemon-reload
systemctl enable governor.service |
Stromspar-Hilfe PowerTOP
PowerTOP analysiert den Energieverbrauch des Systems und gibt darauf basierende Tipps, mit denen man die Akkulaufzeit dauerhaft verbessern kann. Mit dem Parameter --auto-tune
kann man die Vorschläge automatisch für die laufende Sitzung übernehmen:
powertop --auto-tune |
Um PowerTOP automatisch mit den besten Werten gleich beim Systemstart durch systemd
ausführen zu lassen, kann man folgendermaßen vorgehen.
Zuerst erstellt man die Datei /etc/systemd/system/powertop.service
für den systemd
-Service:
[Unit] Description=PowerTOP auto tune [Service] Type=idle Environment="TERM=dumb" ExecStart=/usr/sbin/powertop --auto-tune [Install] WantedBy=multi-user.target |
Dann lädt man die Konfiguration des systemd-Managers neu und aktiviert den PowerTOP-Service:
systemctl daemon-reload
systemctl enable powertop.service |
In den openSUSE Docs findet man noch weitere Infos zum Power Management
Geschrieben in Gnu/Linux, Open Source, OpenSuse