2.4. Was überwachen?

Wie bereits erwähnt sind die Ressourcen in jedem System CPU-Leistung, Bandbreite, Speicher und Speicherplatz. Auf den ersten Blick scheint es, dass die Überwachung sich nur um die Untersuchung dieser vier Dinge dreht.

Leider ist es nicht ganz so einfach. Denken Sie zum Beispiel an eine Festplatte. Was würden Sie gerne über deren Leistungsfähigkeit erfahren?

Es gibt natürlich weitere Methoden zur Untersuchung der Festplattenleistung. Die oben genannten Punkte haben sich nur mit einem winzigen Teil des Ganzen beschäftigt. Das Hauptkonzept ist, dass es viele verschiedene Datentypen für jede Ressource gibt.

Die folgenden Abschnitte beschäftigen sich mit den Arten der Nutzungsinformationen, die für jede der Hauptressourcen hilfreich sind.

2.4.1. Überwachung der CPU-Leistung

In seiner einfachsten Form bedeutet die Überwachung der CPU-Leistung nicht mehr als festzustellen, ob die CPU-Ausnutzung 100% erreicht. Liegt diese Ausnutzung unter 100%, egal was das System gerade macht, steht weitere Prozess-Leistung zur Verfügung.

Es ist jedoch selten, dass Systeme die 100% CPU-Ausnutzung nicht zumindest manchmal erreichen. An diesem Punkt ist es wichtig, die CPU-Ausnutzungsdaten eingehender zu betrachten. Hierdurch können Sie dann feststellen, wo der Hauptteil der Prozess-Leistung genutzt wird. Hier finden Sie einige der bekannteren CPU-Nutzungsstatistiken:

Benutzer versus System

Der Prozentsatz der Zeit, der auf Benutzer-basierte Verarbeitung im Gegensatz zu System-basierter Verarbeitung aufgewendet wird, kann aufzeigen, ob die Systemlast durch ausgeführte Applikationen oder durch eine Überlastung des Betriebssystems verursacht wird. Hohe Benutzer-basierte Prozentsätze sind ein gutes Zeichen (solange die Benutzer mit der Leistung zufrieden sind), während hohe System-basierte Prozentsätze Probleme aufzeigen, die eventuell weitere Nachforschung erfordern.

Context-Switches

Ein Context-Switch findet dann statt, wenn die CPU einen Prozess beendet und damit beginnt einen neuen Prozess auszuführen. Da jeder Context-Switch vom Betriebssystem verlangt, Kontrolle über die CPU zu erhalten, gehen exzessive Context-Switches und hoher CPU-Verbrauch auf System-Ebene Hand in Hand.

Interrupts

Wie der Name besagt (Interrupts; engl. für Unterbrechungen) sind Interrupts Situationen, bei denen die Verarbeitung der CPU abrupt unterbrochen wird. Interrupts treten häufig aufgrund von Hardware-Aktivitäten (z.B. ein I/O-Gerät schließt eine I/O-Operation ab) oder aufgrund von Software (z.B. Software-Interrupts, die die Verarbeitung von Applikationen steuern) auf. Da Interrupts auf System-Ebene behoben werden müssen, führen hohe Interrupt-Raten zu erhöhtem CPU-Verbrauch auf System-Ebene.

Ausführbare Prozesse

Ein Prozess kann sich in verschiedenen Zuständen befinden. So zum Beispiel:

  • Wartend, dass eine I/O abgeschlossen wird

  • Wartend auf das Speicher-Verwaltungs-Subsystem, dass ein Seitenfehler behoben wird

In diesen Umständen hat der Prozess keinen Bedarf für die CPU.

Irgendwann ändert sich jedoch der Prozess-Status und der Prozess wird ausgeführt. Ein ausführbarer Prozess führt, wie der Name schon sagt, Aufgaben aus, sobald dieser dazu Zeit von der CPU erhält. Werden jedoch mehr als ein Prozess [1] ausgeführt, so müssen alle Prozesse bis auf einen Prozess warten, bis diese an der Reihe sind. Indem Sie die Anzahl der ausführbaren Prozesse überwachen, können Sie feststellen, wie stark Ihr System eingebunden ist.

Andere Leistungs-Metriken, welche die Auswirkung auf die CPU-Ausnutzung veranschaulichen, umfassen verschiedene Services, die das Betriebssystem den Prozessen bereitstellt. Dies können Statistiken zur Speicherverwaltung, I/O-Verarbeitung und so weiter sein. Diese Statistiken zeigen außerdem, dass wenn die Leistung überwacht wird, es keine Grenzen zwischen den verschiedenen Statistiken gibt. Mit anderen Worten heißt dies, dass die CPU-Ausnutzungsstatistiken ein Problem im I/O-Subsystem anzeigen oder dass die Speichernutzungsstatistik einen Designfehler in einer Applikation aufzeigen kann.

Wenn Sie daher die Systemleistung überwachen, ist es nicht möglich, nur eine Statistik isoliert zu betrachten. Lediglich indem Sie das gesamte Bild betrachten, können Sie wichtige Informationen aus den Leistungsstatistiken herausziehen.

2.4.2. Überwachung der Bandbreite

Das Überwachen der Bandbreite ist schwieriger als die anderen hier beschriebenen Ressourcen. Der Grund hierfür ist, dass Leistungsstatistiken eher auf Geräten basieren, während die Bandbreite eher in Bezug auf Busse, die die Geräte verbinden, wichtig ist. In solchen Fällen, in denen ein Gerät einen allgemeinen Bus teilt, sehen Sie zwar normale Statistiken für jedes Gerät, die gesammelte Last auf den Geräten am Bus ist jedoch wesentlich größer.

Eine weitere Herausforderung bei der Überwachung der Bandbreite ist der Umstand, dass es vorkommen kann, dass Statistiken für die Geräte nicht verfügbar sind. Dies gilt insbesondere für System-Erweiterungsbusse und Datenpfade[2]. Auch wenn 100% exakte Bandbreiten-Statistiken nicht immer zur Verfügung stehen, gibt es jedoch meistens genügend Informationen, um einen gewissen Analyse-Grad zu erreichen; insbesondere dann, wenn verwandte Statistiken berücksichtigt werden.

Einige der häufigeren Bandbreiten-bezogenen Statistiken sind:

Bytes empfangen/gesendet

Netzwerk-Schnittstellen-Statistiken liefern einen Anhaltspunkt für die Bandbreitennutzung auf einem der offensichtlicheren Busse — dem Netzwerk.

Schnittstellen-Counts und -Raten

Diese Netzwerk-bezogenen Statistiken geben Hinweise auf übermäßige Kollisionen, übertragene und empfangene Fehler und vieles mehr. Durch diese Statistiken (insbesondere wenn diese für mehr als ein System im Netzwerk zur Verfügung stehen) ist es möglich, Problembehebung im Netzwerk durchzuführen, bevor allgemeinere Netzwerk-Diagnose-Tools eingesetzt werden müssen.

Übertragungen pro Sekunde

Normalerweise für I/O-Block-Geräte wie Festplatten und Hochleistungs-Bandgeräte ist diese Statistik eine gute Methode festzustellen, ob die Bandbreite für ein bestimmtes Gerät ausgelastet ist. Durch ihre elektro-mechanische Natur können Festplatten und Bandgeräte nur eine gewissen Anzahl von I/O-Operationen pro Sekunde ausführen. Deren Leistung sinkt erheblich, wenn diese Grenze erreicht wird.

2.4.3. Überwachung von Speicher

Es gibt nur einen Bereich, in dem eine Vielzahl an Leistungsstatistiken gefunden werden können. Dies ist die Überwachung der Speichernutzung. Durch die inhärente Komplexität moderner Betriebssysteme mit virtuellem Speicher auf Bedarfsbasis sind Statistiken zur Speichernutzung zahlreich und höchst unterschiedlich. In diesem Bereich findet ein Großteil der Arbeit eines Systemadministrators für das Ressourcenmanagement statt.

Die folgenden Statistiken stellen einen groben Überblick über allgemeine Speicher-Management-Statistiken dar:

Page-Ins/Page-Outs

Durch diese Statistiken kann der Fluss von Seiten vom Systemspeicher zu Massenspeichergeräten (Festplatten) gemessen werden. Hohe Raten dieser Statistiken bedeuten, dass das System zu wenig physikalischen Speicher hat und überlastet ist oder mehr Systemressourcen auf das Verschieben von Seiten in und aus dem Speicher aufwendet, als auf das eigentliche Ausführen von Applikationen.

Aktive/Inaktive Seiten

Diese Statistik zeigt, wie stark speicherresidente Seiten verwendet werden. Ein Fehlen inaktiver Seiten kann auf ein Fehlen von ausreichendem physikalischem Speicher hinweisen.

Freie, gemeinsam benutzte, gepufferte und gecachete Seiten

Diese Statistiken liefern zusätzlich Details zu den einfacheren 'Aktive/Inaktive Page'-Statistiken. Durch das Verwenden dieser Statistik ist es möglich, die gesamte Verwendung des Speichers festzustellen.

Swap-Ins/Swap-Outs

Diese Statistiken zeigen das Swapping-Verhalten des gesamten Systems. Übermäßige Raten können hier auf Unzulänglichkeiten im physikalischen Speicher hinweisen.

Die erfolgreiche Überwachung der Speichernutzung erfordert ein grundlegendes Verständnis über die Funktionsweise von Betriebssystemen mit virtuellem Speicher auf Bedarfsbasis. Während dieses Thema allein ein ganzes Buch umfassen kann, werden die Grundkonzepte unter Kapitel 4 beschrieben. Dieses Kapitel, zusammen mit der Zeit, die Sie mit der Überwachung des Systems verbringen, gibt Ihnen den Grundstein für das aufzubauende Verständnis dieses Themas.

2.4.4. Überwachen von Speicherplatz

Das Überwachen des Speicherplatzes findet auf zwei verschiedenen Ebenen statt:

Der Grund hierfür ist die Möglichkeit schwerwiegende Probleme in dem einen Bereich zu haben und gar keine Probleme in einem anderen Bereich. Es ist zum Beispiel möglich, dass eine Festplatte nicht mehr über genügend Speicher verfügt, ohne dass dieser Umstand auch nur ein einziges mal leistungsbezogene Probleme aufwirft. Andererseits ist es möglich, dass eine Festplatte 99% freien Platz hat, jedoch in Bezug auf das Leistungsverhalten deren eigene Grenzen überschreitet.

Es ist jedoch wahrscheinlicher, dass das durchschnittliche System variierende Grade von Ressourcen-Einbußen in beiden Kategorien erfährt. Es ist daher auch wahrscheinlich, dass — zu einem gewissen Grad — Probleme in einem Bereich zu Problemen im anderen Bereich führen. Der häufigste Typ dieser Interaktion nimmt die Form geringer und geringer werdender I/O-Leistung an, wenn eine Festplatte fast keinen freien Platz mehr besitzt.

In jeden Fall sind die folgenden Statistiken nützlich für das Überwachen von Speicherplatz:

Freier Platz

Freier Platz ist wahrscheinlich die Ressource, die von allen Systemadministratoren genauestens überwacht wird. Es ist ziemlich selten, dass ein Systemadministrator niemals den freien Platz überprüft (oder einen automatisierten Weg dafür gefunden hat).

Dateisystem-bezogene Statistiken

Diese Statistiken (wie z.B. über die Anzahl von Dateien/Verzeichnissen, die durchnittliche Dateigröße etc.) liefern zusätzliche Details über den Prozentsatz freien Festplattenplatzes. Diese Statistiken ermöglichen es Adminisratoren, das System für die bestmögliche Leistung zu konfigurieren, da die I/O-Last von einem Dateisystem mit einer Vielzahl kleiner Dateien sich von der eines Systems mit einer einzigen, riesigen Datei unterscheidet.

Übertragungen pro Sekunde

Diese Statistik ist eine gute Methode festzustellen, ob die Grenzen der Bandbreite auf einem bestimmten Gerät erreicht wurden.

Lese-/Schreibvorgänge pro Sekunde

Als eine ein wenig detailliertere Analyse von Übertragungen pro Sekunde, ermöglichen diese Statistiken dem Systemadministrator die Natur der I/O-Lasten, die ein Speichergerät erfährt, besser zu verstehen. Dies kann kritisch sein, da einige Technologien sehr unterschiedliche Performance-Merkmale für Lese- versus Schreib-Operationen aufweisen.

Fußnoten

[1]

auf einem Einzel-Prozessor Computersystem

[2]

Weitere Informationen zu Bussen, Datenpfaden und Bandbreite finden Sie unter Kapitel 3