Tuning-Basics für Linux

Tuning-Basics für Linux

Tuning erfordert viel Know-how, Zielstrebigkeit und Geduld. Damit aber ist es durchaus möglich, auch ohne teure Investitionen in Hardware deutliche Performance-Gewinne zu erzielen. Ein Geheimrezept gibt es nicht, wohl aber Tipps und Tricks, die in vielen Fällen weiterhelfen.

Zielloses Herumprobieren bringt nichts. Wenn es ein Erfolgsgeheimnis beim Performance-Tuning gibt, dann ist es das planvolle Vorgehen in kleinen Schritten. Moderne Rechner und Betriebssysteme sind viel zu komplexe Systeme, als dass die Ursachen schlechter Performance oder die Auswirkungen von Verbesserungsbemühungen immer auf den ersten Blick erkennbar wären. Allein eine auf Fakten gestützte systematische Methode hat da Aussicht auf Erfolg.

Daueraufgabe

„Heute ist alles so langsam!“ Klagen der Anwender sind zwar nicht selten der Ausgangspunkt einer Performance-Analyse – wer jedoch erst jetzt reagiert, kommt eigentlich zu spät. Viel besser ist ein proaktives Performance-Management, das ständig die aktuellen Leistungsdaten im Blick behält und Probleme diagnostiziert, bevor sie sich auswirken. So hat man auch jederzeit belastbare Vergleichswerte zur Hand, aus denen sich gegebenenfalls Trends ableiten lassen. Jede Analyse durchläuft einen Zyklus, der sich in der Regel so oder ähnlich mehrfach wiederholt:

Messen steht am Anfang und dient der Faktensammlung. Subjektive Aussagen der Anwender lassen sich in diesem Schritt objektivieren, verwandeln sich in Größen, mit denen man rechnen kann. Es ergibt sich ein Ausgangspunkt, der als Messlatte für die folgenden Versuche dient. Beim Messen kann man sich auf die Instrumentierung des Betriebssystems stützen, auf die zahlreichen Monitoring-Tools, die Linux bereits mitbringt – dieser Beitrag stellt sie in den Mittelpunkt. Wichtig ist, den Effekt, den man messen möchte, so gut wie möglich zu isolieren. Ein I/O-Benchmark etwa, bei dem parallel andere Prozesse häufig auf die Platten zugreifen, produziert wertlose Ergebnisse.

Analysieren ist der zweite Schritt. In der Hauptsache geht es dabei darum, die kritischen Ressourcen zu erkennen, die überwiegend für die schlechte Performance verantwortlich sind. Worauf man sich dabei konzentrieren muss, hängt einerseits von der Auslastung der jeweiligen Ressource ab, andererseits aber auch von den Ansprüchen der Anwender.

Ändern lässt sich erst etwas, wenn feststeht, worauf es ankommt. Nötig ist außerdem ausreichend Hintergrundwissen über die Mechanik des Betriebssystems, um zielgerichtete Eingriffe planen zu können. Dabei sollte man defensiv vorgehen, kleine Schritte machen und eine konkrete Erwartung formulieren, die sich anschließend überprüfen lässt. Alle Änderungen sind penibel zu dokumentieren und es muss immer möglich sein, zum Ausgangspunkt zurückzukehren, falls sich kein Erfolg einstellt oder sich die Situation gar verschlechtert.

Der nächste Schritt ist wieder das Messen – diesmal als Erfolgskontrolle. Dabei zeigt sich, ob die Richtung stimmte, ob man das Zusammenspiel der Faktoren verstanden hat, ob die Maßnahmen greifen oder ob der Hebel ganz woanders anzusetzen ist.

Im Wesentlichen dreht sich alles Tunen immer um die drei fundamentalen Ressourcen: I/O (inklusive Netzwerk), CPU und Memory. Der Beitrag untersucht im Folgenden, welche Monitoringtools der Linux-Werkzeugkasten für sie bereithält und wo die wesentlichen Ansatzpunkte liegen.

Platten-Performance

Die Zugriffsgeschwindigkeit der Festplatten steigerte sich im Lauf der Computergeschichte, verglichen mit den Performance-Gewinnen anderer Rechner-Ressourcen, am wenigsten. Die Kapazität der Platten folgt noch dem Mooreschen Gesetz oder übertrifft es in letzter Zeit mit einer jährlichen Verdopplung sogar. Für das Lesen und Schreiben aber trifft das bei Weitem nicht zu.

Die erste Festplatte überhaupt, eine IBM RAMAC, war groß wie ein stattlicher Kühlschrank und bestand in den 1950er-Jahren aus einem 60 Zentimeter breiten Stapel aus 50 Aluminiumplatten. Auf jeder Plattenseite fanden 100 Spuren Platz, die jeweils 500 Zeichen fassten. Damit betrug die Gesamtkapazität lediglich bescheidene fünf MByte. Eine aktuelle Ein-Terabyte-Platte übertrifft diesen Wert um das 200.000-fache. Die RAMAC-Platten beschleunigte ein Motor, der auch einen kleinen Betonmischer hätte bewegen können, auf 1200 Umdrehungen in der Minute. Heutige SATA-Discs drehen lediglich sechsmal so schnell. Das heißt, das Tempo des Datentransfers von und zu dieser Art Massenspeicher hinkt verglichen mit der Entwicklung des Fassungsvermögens dem Schrittmaß der übrigen Computerwelt um viele Größenordnungen hinterher. Die Grenzen setzen hier einfach die Gesetze der Mechanik.

Hohe Drehzahlen verlangen eine hohe Beschleunigung der Schreib-/Leseköpfe, doch die müssen gleichzeitig eine unvorstellbare Positioniergenauigkeit erreichen, schweben sie doch nur 10 bis 15 Nanometer über der Plattenoberfläche und müssen auf Daumennagelbreite eine unter Zehntausenden nebeneinanderliegender Spuren treffen. Es ist unmöglich, diesen Aufbau unbegrenzt weiter zu miniaturisieren, und auch der Geschwindigkeit sind physikalische Grenzen gesetzt. Vor allem deshalb gehört die Zukunft zweifellos den Flash-Speichern, die ohne bewegte Bauteile auskommen und damit nicht nur wesentlich ausfallsicherer, sondern auch sehr viel schneller sind.

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