Neue Hardware kostet Geld und erfordert zusätzlichen Platz. Beides steht IT-Abteilungen meistens nur in begrenztem Umfang zur Verfügung. Performance-Gewinne sollten daher zunächst immer durch eine Optimierung der bereits vorhandenen Systemlandschaft erzielt werden. Hierfür ist ein gutes Verständnis der einzelnen Systemkomponenten notwendig. Diese setzen sich aus der vorhandenen Hardware, dem eingesetzten Betriebssystem und den darauf laufenden Anwendungen zusammen. Nicht nur sind die einzelnen Komponenten so zu konfigurieren, dass diese maximale Performance liefern, auch eine Abstimmung der Komponenten untereinander ist notwendig.
Die Vorgehensweise dabei ist eigentlich immer identisch. Zuerst ist es wichtig, sich im Klaren darüber zu sein, welches Ziel es zu erreichen gilt. Dieses sollten Sie in Form eines Performance Level Agreements (PLA) schriftlich fixieren. Danach geht es an die Analyse des Ist-Zustands der Umgebung.
Das Ergebnis dient Ihnen als Baseline für alle weiteren Aktivitäten. Sämtliche Änderungen an einem System bewerten Sie anhand der in diesem Schritt ermittelten Kennzahlen. Ist die Baseline fixiert, folgt eine Analyse dahingehend, welche Ressourcen für die eventuell schlechte Performance verantwortlich sind oder welche Ressourcen es zu verändern gilt, um die gewünschten Ziele, sprich das vereinbarte PLA, zu erreichen.
Im nächsten Schritt sollten Sie kleine Änderungen an den diversen Stellschrauben des Systems durchführen. Durch eine erneute Messung lässt sich dann ermitteln, ob sich die Kennzahlen der Ressourcen im Vergleich zur Baseline verschlechtert oder verbessert haben. Sämtliche Änderungen und die daraus resultierenden Ergebnisse müssen Sie genauestens dokumentieren. Somit ist sichergestellt, dass eine Rückkehr zur Baseline zu jedem Zeitpunkt möglich ist.
Unser Artikel behandelt im Wesentlichen die Komponente Betriebssystem. Hierbei kommt den drei Subsystemen I/O, Memory und CPU besondere Bedeutung zu, handelt es sich doch um die wesentlichen Teilbereiche eines Betriebssystems, an deren Mechanik Änderungen vorgenommen werden können. Sämtliche Beispiele basieren auf einer Red Hat Enterprise Linux 64 Bit-Installation mit 2.6-Kernel. Die meisten der hier vorgestellten Tools gehören zum Standardumfang einer Installation. Für alle anderen Werkzeuge ist die Bezugsquelle angegeben und die meisten dieser Tools stehen auch über das EPEL-Software Repository zur Verfügung [1].
Das Linux I/O-Subsystem ist sehr komplex und es sind eine Vielzahl von unterschiedlichen Komponenten zu betrachten. Wie schnell die Daten von einer Festplatte zur verarbeitenden Anwendung gelangen, hängt im Wesentlichen von den folgenden Faktoren ab:
- Geschwindigkeit der Festplatte
- Controller der Festplatte und dessen Cache
- Bussystem zwischen der Festplatte und dem Controller
- Controller des Systems
- Treiber des Betriebssystems
- I/O-Scheduler des Betriebssystems
- Größe des Disk-Caches
- Typ und Einstellung des Dateisystems
- Zugriffsverhalten der Anwendung
Zwischen der Anwendung und der Festplatte liegen die für die Performance-Optimierung wichtigen Layer, die wir nun im Detail betrachten.