Workshop: Performance-Optimierung von Red Hat Enterprise Linux

Einen Gang höher schalten

Hegen IT-Verantwortliche den Wunsch nach Performance-Gewinnen für die Server-Infrastruktur, ist dies unzureichender Leistung geschuldet oder fehlendem Platz für die Hardware-Erweiterung. Denn mehr Rechenpower lässt sich auf zwei Arten erzielen: Investitionen in zusätzliche Hardware oder die bessere Nutzung vorhandener Ressourcen. Letzteres erfordert einiges an Know-how und erfordert eine genaue Analyse der vorhandenen Umgebung. Dieser Artikel beschreibt die Optimierung von I/O, Netzwerk und CPU auf Basis von Red Hat Enterprise Linux.
In der Juni-Ausgabe des IT-Administrator dreht sich alles um den Schwerpunkt 'Monitoring & Dokumentation'. So zeigen wir Ihnen, wie die Netzwerküberwachung in ... (mehr)

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.

Ziele definieren und messen

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].

I/O-Performance optimieren

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.

Bild 1: Auf dem Weg von einer Applikation bis zur Festplatte muss der Datenstrom diverse Layer durchlaufen
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023