Einführung in Performance Monitoring
Geschrieben von: Christoph Wille
Kategorie: Optimierung
This printed page brought to you by AlphaSierraPapa
Die eigenen ASP Seiten auf Geschwindigkeit zu optimieren, ist der erste Schritt zu einer
Website, die viele gleichzeitige Benutzer bedienen kann. Allerdings kann auch noch so gut optimierter ASP
Code den Server bis an seine Grenzen ausreizen. Die Grenzen, die zumeist zuallererst erreicht
werden, sind:
Grundsätzlich "merkt" man Performance Probleme erst dann, wenn der Server sehr deutlich langsamer wird -
allerdings kann man zu diesem Zeitpunkt nur raten, was denn nun die begrenzte Resource ist: ist es das RAM,
der Prozessor, oder gar die Netzwerkkarte? Um harte Fakten zu bekommen (beziehungsweise permanent zu überwachen,
bevor es zu Problemen kommt), sollte man sich des Performance Monitors bedienen:
Dieses Tool ist bei jeder Standardinstallation von Windows NT/2000 mit dabei, und findet sich bei den Administrationstools.
Standardcounter
Damit gemeint sind einige Counter, die man bezüglich der Serverperformance immer im Auge behalten sollte - quasi
unabhängig davon, ob man SQL Server oder IIS installiert hat.
CPU
- Processor: % Processor Time: Überwacht die Zeit, die der Prozessor nicht im Leerlauf verbringt (%).
Konstante Werte über 80 beziehungsweise 90% zeigen an, daß man einen schnelleren Prozessor brauchen würde.
- System: % Total Processor Time: In einem Multiprozessorsystem gibt dieser Counter die Gesamtauslastung
aller Prozessoren an. Unter IIS4 konnte ASP nur gut bis 2 Prozessoren skalieren, ab IIS5/Windows 2000 auch
sehr gut auf 4 Prozessorsystemen.
- System: Processor Queue Length: Zeigt die Anzahl der Threads, die auf Prozessorzeit warten. Wenn der
Wert konstant über 2 steigt, bedeutet dies, daß der Prozessor mehr Arbeit bekommt, als er bearbeiten kann.
RAM
- Memory: Available Bytes: Überwacht den für Prozesse verfügbaren Speicher. Wenn dieser Counter niedrig ist,
bedeutet das eine generelle Knappheit von RAM im Server.
- Memory: Pages/sec: Überwacht die Anzahl der Seiten die entweder auf die Festplatte geschrieben, oder von
dort gelesen werden.
- Memory: Page Faults/sec: Zeigt die Anzahl der Page Faults (Seitenfehler) an. Im Zusammenspiel mit
Pages/sec kann man feststellen, ob exzessives Paging am Server stattfindet.
- Process: Page Faults/sec: Damit kann man die Page Faults per Anwendung überwachen.
Festplatte
Um die Festplattenaktivität überwachen zu können, müssen die entsprechenden Performance Counter zuerst
aktiviert werden (aus Geschwindigkeitsgründen sind sie deaktiviert). Um die Counter zu aktivieren, führen Sie
folgendes Kommando aus, und starten den Rechner neu:
diskperf -y
Wenn man diesen Schritt nicht ausführt, darf man sich nicht wundern, wenn alle Counter 0 anzeigen! Apropos:
Benutzer von RAID Controllern müssen folgenden Befehl ausführen:
diskperf -ye
Diskcounter werden mit
diskperf -n
wieder abgeschaltet. Aus Geschwindigkeitsgründen sehr zu empfehlen, wenn man mit der Überwachung fertig ist.
Nun aber zu den Countern im Einzelnen:
- PhysicalDisk: Avg. Disk Queue Length: Verrät die durchschnittliche Anzahl der Anfragen die auf
Festplattenzugriff warten. Werte größer 2 sind bereits problematisch.
- PhysicalDisk: % Disk Time: Prozentsatz der Zeit, bei der die Disk mit Schreibe- oder Leseoperationen
beschäftigt ist. Wenn der Wert 90% überschreitet, sollte man den folgenden Counter mitberücksichtigen:
- PhsicalDisk: Current Disk Queue Length: Anzahl der im Moment auf Festplattenzugriff wartenden Anfragen.
- Memory: Page Faults/sec: Ja, dieser RAM-Counter hat auch seine Auswirkung auf die Festplattenüberwachung!
Damit kann man herausfinden, ob exzessives Paging für die Festplattenaktivität verantwortlich ist.
Arten des Monitorings
Bis jetzt habe ich nur die entsprechenden Performance Counter vorgestellt - wie kommt man nun aber an die
aktuellen Werte der jeweiligen Counter? Dazu gibt es drei verschiedene Wege:
- Chart Das ist die Standardansicht, die auch der vorangegangene Screenshot zeigt. Hier kann die
aktuelle Aktivität dargestellt werden. Counter werden über das Plus-Symbol (Add Counter) hinzugefügt. Im nun
angezeigten Dialogfenster kann man den gewünschten Counter selektieren und in das Chart einfügen.
Man sollte sich nur immer bewußt sein, ob der jeweilige Counter in %, Millisekunden, Byte usw. anzeigt!
- Log Mit dieser Option kann man Daten über einen längeren Zeitraum überwachen lassen, und später
dann auswerten (auch auf anderem Rechner). Der Vorteil: das Monitoring kann automatisch zB zu einer
bestimmten Uhrzeit angestossen werden, ohne daß man am Rechner sitzen müßte. Der Zeitrahmen für die Auswertung
ist einfach wählbar.
- Alerts Mit Alerts kann man bestimmte Aktionen ausführen lassen, wenn ein bestimmter Performancecounter
(oder mehrere) bestimmte Grenzwerte über- oder unterschreiten. Man kann auch angeben, alle wieviel Sekunden
der Performancecounter abgefragt werden soll. Als Aktionen stehen dann zur Verfügung:
Man kann einfach ein Event im Applicationlog vermerken lassen, ein net send durchführen, eine Log
Operation starten (siehe vorheriger Punkt), oder aber ein beliebiges Programm starten - um sich zB anpagen
zu lassen.
Schlußbemerkung
Dieser Artikel kann nur als Start in das Servermonitoring und seine Techniken dienen, und es ist empfehlenswert,
sich ein gutes Buch über NT Systemoptimierung zuzulegen, wenn man es wirklich ernst meint. Allerdings haben Sie
jetzt Informationen über die wichtigsten Counter, als auch eine Einführung in die verschiedenen
Überwachungsmethoden, die Ihnen mit Bordmitteln von NT zur Verfügung stehen.
This printed page brought to you by AlphaSierraPapa
Verwandte Artikel
Monitoring von ASP
http:/www.aspheute.com/artikel/20000502.htm
Performance Monitoring a la .NET
http:/www.aspheute.com/artikel/20000809.htm
Trafficreduzierung mit XCompress
http:/www.aspheute.com/artikel/20020731.htm
Webserver-Tuning mit XTune
http:/www.aspheute.com/artikel/20000814.htm
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.