Das Leistungspotential ausschöpfen

04.03.1999
Performance-Managementsoftware erleichtert Systemverwaltern die Suche nach Reserven in Hardware, Software und Konfigurierung. Mit ihrer Hilfe lassen sich Engpässe aufdecken und Systemabstürze vermeiden.

Viele Netzwerk-Betriebssysteme bieten integrierte Funktionen, mit denen sich die Leistung von Servern überwachen läßt. Diese Kontrollmöglichkeiten beschränken sich allerdings nur auf den Ist-Zustand. Trends zu Performance-Einbrüchen oder gar Systemabstürzen können die Bordsysteme nicht erkennen, da sie keine früheren Meßwerte speichern. Langzeitauswertungen über Wochen oder Monate sind dadurch ausgeschlossen. Das Betriebssystem überläßt das Erkennen und das Reagieren auf kritische Performance-Werte allein dem Systemverwalter, der den Überwachungsmonitor so gesehen ständig im Auge behalten müßte.

Spezialisierte Software für das Performance-Management liefert Darstellungen der entscheidenden Parameter, bietet Alarmfunktionen und führt auto- matisch Notprogramme aus. Außerdem unterstützt sie Langzeitanalysen, die Hinweise auf Schwachstellen im System geben. Generell sollten Performance-Management-Systeme das Netzwerk so wenig wie möglich belasten. Für die Performance-Überwachung spielt deshalb die Art und Weise eine große Rolle, wie die Software die Werte ermittelt, speichert und überträgt. Wenn auf den Servern jeweils Agenten installiert sind, die ihre Meßdaten vor Ort lagern, lassen sich viele Parameter überwachen, ohne den Netzverkehr zu erhöhen. Von den gesammelten Daten sollten die Agenten lediglich eine Auswahl zu einer zentralen Überwachungskonsole transportieren. Die Datenübertragung an die Überwachungskonsole sollte auf Anfrage, nach vorgegebenen Schwellenwerten oder im Alarmierungsfall erfolgen.

Um sicherzugehen, daß alle Aktivitäten problemlos laufen, sollte der Systemadministrator die Performance-Daten aller Server im Netzwerk turnusmäßig auswerten. Besondere Aufmerksamkeit ist bei Spitzenlasten ge-boten, da sich dort möglicherweise Probleme ankündigen, die sich durch rechtzeitige Gegenmaßnahmen verhindern lassen. Ferner kann die ausführliche Analyse von Daten, die während eines unerwarteten Problems gesammelt wurden, wertvolle Impulse für dessen Lösung ergeben.

Suche nach Schwachstellen

Performance-Einbrüche haben in den seltensten Fällen nur eine Ursache. Gerade in großen und heterogenen Netzen beeinflussen sich Hunderte von Korrelationen gegenseitig. Performance-Managementsoftware hilft, die Suche nach Auslösern für Flaschenhälse und Systemausfälle zu automatisieren. Das spart Zeit und Geld bei der Beseitigung von Problemen. Je größer die Datenbestände aus Langzeitanalysen sind, desto wichtiger werden die Automatisierungsfunktionen der Analyseanwendung.

Das Drehen an der falschen Schraube degradiert ausgeklügelte Leistungsprognosen zu belanglosen Zahlenspielen, wenn nicht alle Abhängigkeiten bekannt sind. Maßnahmen, die in einem Gebiet die Leistung verbessern, ziehen manchmal Leistungseinschränkungen in einem anderen Bereich nach sich. Wenn etwa eine schnellere Netzkarte noch mehr Daten in einen bereits überlasteten Router pumpt, kann das zu einem Engpaß führen, der auch andere Segmente in Mitleidenschaft zieht. Bei der Überwachung und Verbesserung der Performance empfiehlt sich daher folgendes Vorgehen:

- Identifizieren der Funktionen, deren Leistungen unzureichend sind;

- Isolieren der beteiligten Komponenten (Hard- oder Software);

- Ändern der Einstellungen durch schrittweises Hinzufügen, Entfernen oder Austauschen der Komponenten, die das Problem verursachen;

- Messen der Leistungswerte der Komponenten vor und nach dem Tuning.

Neben den statistischen Daten über Hardware und Betriebssysteme sollten auch Informationen zu den Anwendungen gesammelt werden, das sind heute üblicherweise Datenbankanwendungen. Damit nicht verfälschte Daten einen irreführenden Eindruck von den Vorgängen auf dem Server vermitteln, muß die Datensammlung gut strukturiert sein und wie folgt vorgenommen werden:

- Es sollten keine anderen Vorgänge außer der Performance-Management-Software auf der Maschine laufen.

- Beginn und Ende der Aufzeichnung sollten aufgeschrieben werden.

Um Vorher/Nachher-Vergleiche von Systemeinstellungen durchführen zu können, empfiehlt es sich, die Ergebnisse der Auswertung zu archivieren. Unübliche Systembedingungen verzerren die Ergebnisse. Beispielsweise sollte er Test-Tage, an dem ein großer Batchjob läuft. Das ergäbe unverhältnismäßig niedrige Performance-Werte. Außerdem ist es ratsam, nicht ständig die gleichen Abfragebedingungen einzusetzen. Mehrfache Abfragen erzeugen ungewöhnlich hohe Leistungswerte, da das Abfrageergebnis im Speicher gesichert wird und nicht die tatsächliche Ein-/Ausgabeanforderung wiedergibt.

Die Anwendungen und die Plattform, auf der sie laufen, müssen gut aufeinander abgestimmt und richtig konfiguriert sein, damit keine Performance-Probleme auftreten.

Prozessor und Arbeitsspeicher

Zur Bewertung der Gesamtleistung müssen alle Systemkomponenten auch als Ganzes betrachtet werden. Im allgemeinen gilt zwar: "Je schneller, desto besser", doch die zusätzliche Leistung von neuen Prozessoren bleibt in vielen Fällen fast wirkungslos. Benchmarks können in die Irre führen, da sie keine realistischen Betriebsbedingungen widerspiegeln. Größere Arbeitsspeicher oder schnellere Laufwerks-Controller bringen oft mehr als ein schnellerer Prozessor. Ebenso kann die Leistungssteigerung durch mehr Prozessoren unerheblich bleiben, wenn System- und Anwendungsarchitektur nicht zueinander passen.

Funktionelles Multi-Processing bedeutet, daß die Prozessoren jeweils für bestimmte Aufgaben zuständig sind. Zusätzliche Prozessoren bewirken in diesem Fall nur dann eine Leistungssteigerung, wenn mehrere verschiedenartige Prozesse gleichzeitig gestartet werden. Wenige, aber längerfristige und ressourcenintensive Prozesse führen dagegen zu Leerlaufzeiten der nicht benötigten Prozessoren und damit nur zu geringer Steigerung der Gesamtperfor- mance.

Arbeiten die Prozessoren parallel und teilen sich die Aufgaben ohne Rücksicht auf die Prozeßzugehörigkeit, ist das Potential der Leistungssteigerung sehr hoch. Das Symmetrical Multi Processing (SMP) steuert eine Low-Level-Software, die in das Betriebssystem eingebettet ist. Auch wenn es hardwareseitig möglich ist, reicht es leider nicht aus, zusätzliche Prozessoren und die passende SMP-Software zu installieren. Damit SMP funktioniert, müssen die Prozesse selbst auch dahingehend programmiert sein. Fast alle modernen Datenbankmanagementsysteme sind dazu allerdings in der Lage.

Festplatten und RAID

Wenn eine Anwendung Daten benötigt, die alle auf dem gleichen Laufwerk liegen, können sie üblicherweise nur nacheinander gelesen werden. Liegen die Daten dagegen auf verschiedenen Laufwerken, lassen sie sich parallel und dadurch schneller einlesen. Die dazu nötigen Maßnahmen sollten die Systemverwalter äußerst umsichtig planen. Überwiegend konkurrieren Datenbankzellen und deren Indizes um einen gleichzeitigen Zugriff, so daß deren Verteilung auf verschiedene Geräte schnellere Zugriffszeiten erlaubt.

Die Technik "Redundant Array of Inexpensive Disks", kurz RAID, schaltet mehrere Festplattenlaufwerke logisch zusammen, so daß sie als eine einzige Massenspeicher-Einheit gelten. Dieses Verfahren erhöht einerseits die Datensicherheit, hat aber auch Einfluß auf die Performance. Bei manchen Betriebssystemen sind die einzelnen Aktivitäten der jeweiligen Festplatten zugänglich, andere können das RAID-Device nur als Gesamteinheit betrachten. Zum RAID-System gehört eine eigene Software, die kontrolliert, wo Daten auf die Festplatten geschrieben und gelesen werden.

RAID ist jedoch nur ein allgemeiner Oberbegriff, den verschiedene Levels konkretisieren. Der Begriff Level ist aber insofern irreführend, als damit keine funktionale Abstufung gemeint ist, sondern lediglich eine historisch bedingte Numerierung. RAID 9 ist zum Beispiel nicht besser als RAID 4. RAID-Level, die durch Mehrfachspeicherung mehr Sicherheit bewirken, können die Performance sogar verschlechtern, denn alle Speichervorgänge laufen mehr als einmal ab. Bei den einzelnen Vorgängen mag die dadurch entstehende Zeitverzögerung gering erscheinen, bei umfangreichen Speicheraktivitäten kann diese jedoch enorm sein. Die Lesevorgänge laufen geringfügig schneller ab, weil die gesuchten Daten mehrmals abgelegt sind und schneller gefunden werden. RAID ist für die Performance als Maßnahme des Fine-Tunings zu sehen.

Festplattenaktivitäten lassen sich nicht genau vorhersagen. Das Beobachten der tatsächlichen Aktivität über einen längeren Zeitraum erleichtert die Prognose. Auch wenn der Administrator die Festplattenzugriffe auf ein Minimum reduzieren konnte, sollte er sie weiter überwachen und gegebenenfalls anpassen, da Arbeitsvorgänge, Datenmengen und deren Speicherort einem ständigen Wandel unterliegen. Diese Aufgabe kann die Performance-Management-Software übernehmen.

Datenbank-Tuning

Jedes Datenbankmanagement-System bietet eine Reihe von Konfigurations- und Einstellungsparametern. Die größte Bedeutung hat der Parameter "Speichermenge". Hierbei ist es wichtig, diesen Wert so einzustellen, daß die Datenbank einerseits über ausreichenden Speicherplatz verfügt, andrerseits aber genug davon übrigbleibt, damit die anderen Prozesse effektiv ablaufen können. Es reicht zur Steigerung der Datenbankleistung nicht aus, lediglich die Speicherkapazität zu erhöhen. Die Datenbank muß auch wissen, daß sie mehr davon beanspruchen kann. Außerdem muß genügend Speicher für das Betriebssystem, Backups, die Netzdienste und dergleichen frei bleiben, auch wenn die Datenbank die einzige laufende Anwendung ist.

Die meisten Datenbanksysteme enthalten auch einen Mechanismus, um den Datenbankzugriff zu optimieren. Dazu wird die Information über die aktuelle Anordnung der Daten aus einer Tabelle gelesen. Nach umfangreichen Eingaben oder dem Entfernen von Daten kann es notwendig sein, diese Informationen manuell auf den aktuellen Stand zu bringen. Der Systemverwalter sollte regelmäßig einen Wiederaufbau, oder Rebuild, der Datenbank durchführen, um Daten und insbesondere Indizes zu defragmentieren.

Nicht immer bringen modifizierte Datenbankparameter den erwarteten Erfolg, sondern ziehen sogar unerwünschte Nebeneffekte nach sich. Das ist auf das Wechselspiel verschiedener Faktoren zurückzuführen, die sich durch eine Parameterveränderung beeinflußen. Deshalb sollte der Administrator Änderungen nur in einer isolierten Umgebung vornehmen und die Auswirkung auf das Gesamtsystem prüfen, bevor er sie in die Produktionsumgebung übernimmt.

Anwendungen effizienter machen

Die richtige Hardware, Netzwerk- und Datenbanksoftware bilden lediglich die Basis für die eigentliche Arbeit. Bei den Anwendungen läßt sich die größte Performance-Steigerung erreichen. Hier kommt die 80/20-Regel zum Tragen: 80 Prozent der Probleme liegen in 20 Prozent der Applikationen. Grundsätzlich bieten sich dem Systemverwalter diverse Ansatzpunkte zur Leistungsoptimierung der Anwendungen: Er sollte die komplexen und am häufigsten benutzten SQL-Statements auf ihre Effektivität prüfen, vor allem solche, die "Joins" und "Unions" enthalten. Nicht alle Datenbank-Trigger sind notwendig; sie lassen sich oft sparsamer einsetzen oder entfernen. "Truncate" oder ein ähnlicher Befehl hat Vorteile gegenüber manuellem Löschen, wenn größere Datenmengen betroffen sind. Es ist ratsam, selten benötigte Daten zu archivieren. Alte Daten, vor allem indexierte, sind eine unnötige Last für das System. Die Größe von logischen Transaktionen läßt sich optimieren, zwischen "begin" und "end" werden beispielsweise keine physikalischen Updates vorgenommen. Wenn ein Zugriff auf den Index häufig auch mit einem Datenzugriff verbunden ist, kann das Clustering von Indizes und deren Daten im selben Speicherblock helfen.

Zurück zur 80/20-Regel. Diese 20 Prozent in den Anwendungen aufzuspüren, ist Aufgabe eines Performance-Monitoring-Tools. Von dem Ergebnis hängt es dann auch ab, wie sich im konkreten Fall eine Beschleunigung erreichen läßt. (hl)