| Red Hat Enterprise Linux 4: Einführung in die System-Administration | ||
|---|---|---|
| Zurück | Kapitel 2. Ressourcenkontrolle | Nach vorne |
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?
Wieviel freier Platz steht zur Verfügung?
Wieviele I/O-Operationen werden pro Sekunde durchschnittlich ausgeführt?
Wie lange dauert es, bis jede I/O-Operation abgeschlossen ist?
Wieviele dieser I/O-Operationen sind Lesen? Wieviele Schreiben?
Was ist die durchschnittliche Größe von Daten, die mit jedem I/O gelesen/geschrieben werden?
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.
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:
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.
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.
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.
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.
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:
Netzwerk-Schnittstellen-Statistiken liefern einen Anhaltspunkt für die Bandbreitennutzung auf einem der offensichtlicheren Busse — dem Netzwerk.
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.
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.
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:
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.
Diese Statistik zeigt, wie stark speicherresidente Seiten verwendet werden. Ein Fehlen inaktiver Seiten kann auf ein Fehlen von ausreichendem physikalischem Speicher hinweisen.
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.
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.
Das Überwachen des Speicherplatzes findet auf zwei verschiedenen Ebenen statt:
Auf ausreichenden Festplattenplatz hin überwachen
Auf Speicher-bezogene Leistungsprobleme hin überwachen
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 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).
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.
Diese Statistik ist eine gute Methode festzustellen, ob die Grenzen der Bandbreite auf einem bestimmten Gerät erreicht wurden.
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.
| [1] | auf einem Einzel-Prozessor Computersystem |
| [2] | Weitere Informationen zu Bussen, Datenpfaden und Bandbreite finden Sie unter Kapitel 3 |
| Zurück | Zum Anfang | Nach vorne |
| Überwachen der Systemkapazität | Nach oben | Red Hat Enterprise Linux-spezifische Informationen |