2.5. Tuned und ktune
Tuned ist ein Daemon, der die Verwendung von Systemkomponenten überwacht und Systemeinstellungen dynamisch anhand der Überwachungsinformationen anpasst. Dynamisches Anpassen bewirkt, dass verschiedene Systemkomponenten unterschiedlich verwendet werden für die Dauer der Laufzeit für jedes vorgegebene System. So wird die Festplatte beispielsweise stark zum Zeitpunkt des Systemstarts und -Logins beansprucht. Im weiteren Verlauf, wenn der Benutzer ggf. hauptsächlich mit Anwendungen wie OpenOffice oder E-Mail-Klienten arbeitet, wird sie jedoch kaum benutzt. Gleichermaßen werden CPU und Netzwerkgeräte unterschiedlich zu verschiedenen Zeiten verwendet. Tuned überwacht die Aktivität dieser Komponenten und reagiert auf Veränderungen bei Ihrer Verwendung.
Als ein praktisches Beispiel stellen Sie sich einen typischen Büro-Arbeitsrechner vor. Die meiste Zeit ist das Ethernet Netzwerkgerät sehr inaktiv. Es werden nur ein paar E-Mails ab und zu abgerufen oder versendet oder ein paar Webseiten geladen. Für diese Art von Auslastung muss das Netzwerkgerät nicht permanent mit voller Geschwindigkeit betrieben werden, wie es dies standardmäßig tut. Tuned besitzt ein Überwachungs- und Anpassungs-Plugin für Netzwerkgeräte, welches diese niedrige Aktivität erkennen und dann automatisch die Geschwindigkeit dieser Schnittstelle drosseln kann, was üblicherweise in geringerem Stromverbrauch resultiert. Falls die Aktivität sich über einen längeren Zeitraum deutlich erhöht, beispielsweise durch das Herunterladen eines DCD-Images oder das Öffnen einer E-Mail mit großem Anhang, erkennt tuned dies und setzt die Geschwindigkeit der Schnittstelle auf das Maximum, um die beste Leistung während dieses hohen Aktivitätslevels zu ermöglichen. Dieses Prinzip wird auch für andere Plugins für die CPU und die Festplatten verwendet.
Das Verhalten der Netzwerkgeräte ist standardmäßig nicht so konfiguriert, da Änderungen bei der Geschwindigkeit mehrere Sekunden dauern können, bis sie umgesetzt sind und sich somit direkt und sichtbar auf die Erfahrung des Benutzers auswirken. Ähnliche Erwägungen treffen auf die Anpassungs-Plugins für CPU und Festplatte zu. Wenn eine Festplatte die Drehzahl verringert hat, kann es einige Sekunden dauern, bis sie wieder auf volle Drehzahl beschleunigt, was in einer Verzögerung bei der Reaktionsfähigkeit des Systems während dieser Zeitspanne resultiert. Dieser Latenz-Nebeneffekt ist am geringsten für das CPU-Plugin, kann aber immer noch gemessen werden. Er ist jedoch für einen Benutzer kaum spürbar.
Neben tuned bieten wir jetzt auch ktune an. ktune wurde im Rahmen von Red Hat Enterprise Linux 5.3 als ein Framework und Dienst zur Optimierung der Leistung einer Maschine für spezielle Anwendungsfälle eingeführt. Seitdem hat sich ktune in einem solchen Maße verbessert, dass wir es jetzt als statischen Teil unseres allgemeinen Tuning-Frameworks verwenden. Es wird hauptsächlich in den verschiedenen vordefinierten Profilen, die unter Abschnitt 2.5.2, »Tuned-adm« beschrieben werden, verwendet.
Installieren Sie das Paket tuned und die damit verknüpften systemtap-Skripte mit dem Befehl:
yum install tuned
Bei der Installation des Pakets tuned wird ebenfalls eine Beispiel-Konfigurationsdatei unter
/etc/tuned.conf
eingerichtet und das Standardprofil aktiviert.
Starten Sie tuned, indem Sie Folgendes ausführen:
service tuned start
Um tunedbei jedem Systemstart zu starten, führen Sie Folgendes aus:
chkconfig tuned on
Tuned selbst besitzt zusätzliche Optionen, die Sie verwenden können, wenn Sie den Daemon manuell ausführen. Die verfügbaren Optionen sind:
-d
,--daemon
- tuned als Daemon starten, anstatt es im Vordergrund laufen zu lassen.
-c
,--conffile
- eine Konfigurationsdatei mit dem angegeben Namen und Pfad verwenden, z.B.
--conffile=/etc/tuned2.conf
. Der Standard ist/etc/tuned.conf
. -D
,--debug
- die höchste Log-Stufe verwenden.
2.5.1. Die Datei tuned.conf
.
Die Datei
tuned.conf
beinhaltet Konfigurationseinstellungen für tuned. Standardmäßig befindet sie sich unter /etc/tuned.conf
, aber Sie können einen anderen Namen und Ort angeben, indem Sie tuned mit der Option --conffile
starten.
Die Konfigurationsdatei muss immer einen Abschnitt
[main]
beinhalten, der die allgemeinen Parameter für tuned definiert. Die Datei umfasst dann einen Abschnitt pro Plugin.
Der Abschnitt
[main]
enthält die folgenden Optionen:
interval
- das Intervall in Sekunden, in dem tuned das System überwachen und abstimmen soll. Der Standardwert ist
10
. verbose
- gibt an, ob die Ausgabe umfangreich sein soll. Der Standardwert ist
False
. logging
- gibt die unterste Priorität für Meldungen an, die protokolliert werden sollen. In abfallender Reihenfolge sind die folgenden Werte gültig:
critical
,error
,warning
,info
unddebug
. Der Standardwert istinfo
. logging_disable
- gibt die oberste Priorität für Meldungen an, die protokolliert werden sollen. Jede Meldung mit dieser Priorität oder niedriger wird nicht protokolliert. In aufsteigender Reihenfolge sind die folgenden Werte gültig:
critical
,error
,warning
,info
unddebug
. Der Wertnotset
deaktiviert diese Option.
Jedes Plugin besitzt seinen eigenen Abschnitt, der mit dem Namen des Plugins in eckigen Klammern angegeben wird, z.B.
[CPUTuning]
. Jedes Plugin kann seine eigenen Optionen besitzen, Folgendes trifft jedoch auf alle Plugins zu:
enabled
- gibt an, ob das Plugin aktiviert ist, oder nicht. Der Standardwert ist
True
. verbose
- gibt an, ob die Ausgabe umfangreich sein soll. Falls nicht für dieses Plugin gesetzt, wird der Wert von
[main]
übernommen. logging
- gibt die unterste Priorität für Meldungen an, die protokolliert werden sollen. Falls nicht für dieses Plugin gesetzt, wird der Wert von
[main]
übernommen.
Nachfolgend ist eine Beispiel-Konfigurationsdatei aufgeführt:
[main] interval=10 pidfile=/var/run/tuned.pid logging=info logging_disable=notset # Disk monitoring section [DiskMonitor] enabled=True logging=debug # Disk tuning section [DiskTuning] enabled=True hdparm=False alpm=False logging=debug # Net monitoring section [NetMonitor] enabled=True logging=debug # Net tuning section [NetTuning] enabled=True logging=debug # CPU monitoring section [CPUMonitor] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True # CPU tuning section [CPUTuning] # Enabled or disable the plugin. Default is True. Any other value # disables it. enabled=True