3.2. CPUfreq-Governors verwenden

Einer der effektivsten Wege, den Stromverbrauch und die Wärmeabgabe auf Ihrem System zu reduzieren, ist die Verwendung von CPUfreq. Mit Hilfe von CPUfreq — auch als Abgleichen der CPU-Geschwindigkeit bezeichnet — kann die Taktrate des Prozessors im laufenden Betrieb angepasst werden. Auf diese Weise kann das System mit einer reduzierten Taktrate laufen, um Strom zu sparen. Die Regeln zur Änderung von Frequenzen, sei es eine schnellere oder langsamere Taktrate, sowie dem Zeitpunkt der Änderung werden durch den CPUfreq-Governor definiert.
Der Governor definiert die Strom-Charakteristiken der System-CPU, was im Gegenzug Einfluss auf die CPU-Performanz hat. Jeder Governor besitzt eigene, einzigartige Merkmale hinsichtlich Verhalten, Zweck und Tauglichkeit in Bezug auf die Workload. Dieser Abschnitt beschreibt, wie ein CPUfreq-Governor ausgewählt und konfiguriert werden kann, die Charakteristiken eines jeden Governors und für welche Art von Workload jeder Governor geeignet ist.

3.2.1. CPUfreq Regler-Typen

Dieser Abschnitt listet die verschiedenen Typen von CPUfreq-Reglern auf, die unter Red Hat Enterprise Linux 6 zur Verfügung stehen und beschreibt diese.
cpufreq_performance

Der Performanz-Regler zwingt die CPU, die höchstmögliche Taktfrequenz zu verwenden. Diese Frequenz wird statisch festgesetzt und ändert sich nicht. Aus diesem Grund bietet dieser Regler keine Stromsparvorteile. Es ist nur für Zeitspannen mit hoher Workload geeignet und auch nur dann, wenn sich die CPU kaum (oder nie) im Leerlauf befindet.

cpufreq_powersave

Im Gegensatz dazu zwingt der Powersave-Regler die CPU, die geringstmögliche Taktfrequenz zu verwenden. Aus diesem Grund bietet dieser spezielle Regler maximale Stromsparvorteile, allerdings auf Kosten der geringsten CPU-Performanz.

Der Begriff "powersave" kann manchmal jedoch irreführend sein, da (prinzipiell) eine langsame CPU mit voller Auslastung mehr Strom verbraucht, als eine schnelle CPU, die nicht ausgelastet ist. Aus diesem Grund kann jegliche unerwartete hohe Auslastung dazu führen, dass das System tatsächlich mehr Strom verbraucht, auch wenn es ratsam erscheint, den Stromspar-Regler in Zeiten von erwarteten Zeitspannen mit geringer Aktivität zu setzen.
Der Stromspar-Regler ist, einfach ausgedrückt, mehr ein "speed limiter" für die CPU, als ein "power saver". Er ist in Systemen und Umgebungen, in denen Überhitzung ein Problem sein kann, am nützlichsten.
cpufreq_ondemand

Der Ondemand-Regler ist ein dynamischer Regler, der es der CPU ermöglicht, maximale Taktfrequenz zu erreichen, wenn die Systemauslastung hoch ist, sowie die minimale Taktfrequenz, wenn sich das System im Leerlauf befindet. Während dies dem System ermöglicht, den Stromverbrauch entsprechend in Bezug auf die System-Auslastung anzupassen, geschieht dies zu Lasten der Latenz zwischen dem Hin- und Herschalten von Frequenzen. Aus diesem Grund kann Latenz jeglichen durch den Ondemand-Regler offerierten Nutzen bei der Performanz bzw. dem Stromsparen außer Kraft setzen, wenn das System zu oft zwischen Leerlauf und großen Workloads hin- und herwechselt.

Für die meisten Systeme kann der Ondemand-Regler den besten Kompromiss zwischen Wärmeabgabe, Stromverbrauch, Performanz und Handhabbarkeit bereitstellen. Wenn das System nur an bestimmten Zeiten des Tages beschäftigt ist, schaltet der Ondemand-Regler abhängig von der Auslastung automatisch zwischen maximaler und minimaler Frequenz ohne weiteren Eingriff hin und her.
cpufreq_userspace

Der Userspace-Regler ermöglicht es Userspace-Programmen (oder jeglichen Prozessen, die als Root ausgeführt werden), die Frequenz zu bestimmen. Dieser Regler wird normalerweise in Zusammenhang mit dem cpuspeed-Daemon verwendet. Von allen Reglern ist der Userspace-Regler derjenige, der am meisten angepasst werden kann. Abhängig davon, wie er konfiguriert ist, kann er die beste Balance zwischen Performanz und Verbrauch für Ihr System bieten.

cpufreq_conservative

Wie der Ondemand-Regler passt der Conservative-Regler auch die Taktfrequenz, abhängig vom Gebrauch (wie der Ondemand-Regler). Während der Ondemand-Regler dies jedoch in einer aggressiveren Art und Weise tut (d.h. vom Maximalwert zum Minimalwert und zurück), wechselt der Conservative-Regler mehr schrittweise zwischen Frequenzen hin- und her.

Dies bedeutet, dass der Conservative-Regler in eine Taktfrequenz wechselt, die er für geeignet für die Auslastung hält, anstatt einfach zwischen Maximalwert und Minimalwert zu wählen. Auch wenn dies möglicherweise erhebliche Einsparungen beim Stromverbrauch liefern kann, tut es dies mit einer noch größeren Latenz, als der Ondemand-Regler.

Anmerkung

Sie können einen Regler unter Verwendung von cron-Jobs aktivieren. Dies erlaubt es Ihnen, spezielle Regler automatisch während speziellen Tageszeiten zu bestimmen. Daher können Sie einen Regler mit niedriger Frequenz während Leerlaufzeiten (z.B. nach Büroschluß) definieren und zu einem Regler mit höherer Frequenz während Zeiten mit hohem Workload wechseln.
Werfen Sie einen Blick auf Prozedur 3.2, »Aktivierung eines CPUfreq-Governors« in Abschnitt 3.2.2, »CPUfreq-Einrichtung« für Anleitungen, wie ein spezieller Regler aktiviert werden kann.