Tipp: Server-Stromverbrauch unter Linux mit PowerTOP 2 analysieren und optimieren
Welcher Linux-Server braucht wie viel Strom und bei was? Mit PowerTOP lässt sich der Stromverbrauch exakt ermitteln und so das Data Center optimieren.
Optimale Effizienz in Sachen Stromverbrauch wird in Data Centern, die mehrere Linux-Server betreiben, immer wichtiger. Je besser Sie PowerTOP 2 kennen, desto mehr erfahren Sie über den Stromverbrauch von Linux. Diese Erkenntnisse helfen wiederum bei der Optimierung der Linux-Server.
CPUs, C-States und Stromverbrauch
Um die Monitoring-Applikation PowerTOP besser verstehen zu können, werfen wir zunächst einen Blick auf einen Server und wie dieser mit dem Stromverbrauch umgeht. Im Standard von ACPI (Advanced Configuration and Power Interface) wird der Stromverbrauch in so genannten C-States angegeben. Das nennt man manchmal auch C-Modes. Eine CPU kann zwischen verschiedenen Taktfrequenzen umschalten. Jede davon ist einem C-State zugewiesen. Ein Prozessor unter Last wird sich in einem kleineren C-State befinden. Das sagt aus, dass dieser mehr Strom verbraucht. Prozessoren in einem höheren C-State brauchen weniger Strom. In diesem Fall dauert es aber auch länger, bis diese wieder voll aktiv werden. Ist eine CPU zum Beispiel im C-State 6, verbraucht sie so gut wie gar keinen Strom. Es dauert aber 250 Millisekunden oder mehr, bevor die CPU wieder komplett aktiv werden kann.
Wieviel Strom ein Programm verbraucht, können Sie nicht beeinflussen. Der Linux-Kernel versucht allerdings, den Energiehaushalt zu optimieren. Allerdings können Sie Systemkomponenten innerhalb der Server des Data Centers verschieben, um den Stromverbrauch zu verbessern. Hierbei helfen die mit PowerTOP gewonnenen Informationen.
PowerTOP 2 benutzen, um den Stromverbrauch zu untersuchen
Das Utility PowerTOP 2 listet aktive Programme und Treiber, sowie deren Stromverbrauch auf. Es könnte zum Beispiel vorkommen, dass ein nicht genutztes Programm oder Modul für den höchsten Stromverbrauch auf dem Server verantwortlich ist. Durch diese Einblicke können Sie das Kernel-Modul auf die Blacklist setzen oder das entsprechende Programm gleich ganz entfernen. Durch solche Maßnahmen senken Sie natürlich den Stromverbrauch.
Die zusammenfassende Zeile am oberen Ende der PowerTOP-Übersicht zeigt den Linux-Stromverbrauch anhand der durchschnittlichen Wakeups pro Sekunde. Weiterhin sehen Sie die Vorgänge der GPU (Grafikkarte) und der virtuellen Dateisysteme (VFS). Ebenso ist die CPU-Auslastung hinterlegt. Mit diesen Informationen bekommen Sie sofort einen Überblick, an welcher Stelle Sie nach Stromfressern suchen müssen. Abbildung 1 zeigt zum Beispiel, dass das untersuchte System viele Wakeups pro Sekunde aufweist. Verantwortlich dafür sind die Prozesse libvirtd, virt-manager und kvm.
Stromverbrauchs-Statistiken in PowerTOP 2
Die Statistik-Informationen von PowerTOP 2 zeigen, was die CPU-Kerne so treiben und in welchen C-State sie sich befinden. Das Ganze stellt die Software übersichtlich pro Kern dar. Allerdings helfen diese Informationen in der Regel nicht beim Verbessern des Server-Stromverbrauchs.
Im Reiter „Frequenzstatistik“ erfahren Sie die derzeit genutzten Frequenzen der CPUs, die sich dann wiederum mit den C-States in Verbindung bringen lassen. Hier sehen Sie, wie effizient die CPU-Frequenz bei geringer Auslastung ist. Von modernen CPUs erwartet man, dass diese bei geringer Auslastung auf einen niedrigeren Frequenzbereich umschalten (Abbildung 2). Sollte die Workload plötzlich nach oben gehen, wird sich auch der C-State der CPU ändern. Auf meinem Testsystem habe ich das mithilfe des Befehls dd if=/dev/zero of=/dev/null erzwungen. Diese Eingabe treibt eine CPU zu Höchstleistungen an und versetzt sie in den Turbo-Modus, da sie die Aufgabe so schnell wie möglich erledigen möchte.
Tuning: Energieverbrauch unter Linux optimieren
Um den Stromverbrauch unter Linux zu optimieren, müssen Sie zunächst die Stromfresser finden. Bei einigen Geräten bieten die Treiber Optionen an, mit denen sich die Energie-Effizienz verbessern lässt. Eine Übersicht dazu finden Sie im Reiter „Einstellbarkeit“. Hier können Sie die gewünschten Parameter ein- und ausschalten. Um den Wert zu ändern, brauchen Sie diesen lediglich auswählen und drücken danach die Eingabetaste. PowerTOP teilt dem System die Veränderung sofort mit. Somit sehen Sie auf der Stelle, ob sie den gewünschten Effekt erzielt.
Es gibt neben den im PowerTOP-Interface direkt einstellbaren Parametern noch einige andere Optionen, die Sie in Betracht ziehen sollten. Stellen Sie sich vor, dass auf einem bestimmten Server die Dateisystem-Treiber sehr viel Aktivität verursachen. Dann könnte es an der Zeit sein, das Dateisystem zu wechseln. Bei bestimmten Aufgaben könnte ein fortgeschrittenes Dateisystem, wie zum Beispiel Btrfs, für das Erledigen gewisser Aufgaben unter Linux wesentlich mehr Routinen benötigen. Vielleicht ist in so einem Fall ein einfacheres Dateisystem wie ext3 besser geeignet. Am besten evaluieren Sie solche Situationen mithilfe einer Testumgebung. Dort können Sie mit den verschiedenen Parametern spielen und das Optimum herausholen.