Welche WQL-Abfragen würden Sie zur Überwachung typischer Windows-Engpässe verwenden? Mit welchen Daten würden Sie ähnliche Daten wie 'top' oder 'netstat' erhalten? In welchem Intervall würden Sie fragen?
Hier sind ein paar, die ich hilfreich finde.
SELECT PercentDiskTime, AvgDiskQueueLength, DiskReadBytesPerSec, DiskWriteBytesPerSec FROM Win32_PerfFormattedData_PerfDisk_PhysicalDisk
SELECT Caption, CommittedBytes, AvailableBytes, PercentCommittedBytesInUse, PagesPerSec, PageFaultsPerSec FROM Win32_PerfFormattedData_PerfOS_Memory
SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor
SELECT Caption, WorkingSet, PageFaultsPerSec,IOReadBytesPerSec, IOWriteBytesPerSec, ThreadCount, HandleCount FROM Win32_PerfFormattedData_PerfProc_Process
SELECT Caption, BytesReceivedPerSec, BytesSentPerSec FROM Win32_PerfFormattedData_Tcpip_NetworkInterface
monitoring
wmi
Yancy
quelle
quelle
Antworten:
Dies ist eine wirklich gute Frage , und es ist eine Schande, dass es nicht mehr Liebe bekommen hat!
Meine grundlegende Theorie der Engpassanalyse besteht darin, das System als eine Box mit 4 Arten endlicher Ressourcen zu behandeln: Prozessor, Speicher, Festplatte und Netzwerk . Daher möchte ich für jedes Element grundlegende Zahlen erhalten, um den Zustand der Box zu bestimmen. Ich möchte Zahlen, die leicht zu interpretieren sind: hoch ist schlecht, niedrig ist gut. 0 ist am besten, aber nie perfekt erreichbar (immerhin haben wir den Computer gekauft, um zu arbeiten , oder?). Sobald ich sehe, welche der vier Ressourcen der Hauptengpass ist, kann ich feststellen, welches Programm oder welcher Prozess alle Ressourcen verbraucht, und eine fundierte Entscheidung treffen, ob ich diese Ressource erhöhen oder das zu verwendende Programm / den Prozess optimieren muss weniger von der Ressource.
Die wichtigsten Leistungsindikatoren, die ich in diesem Artikel verwende , werden als WMIC-Abfragen formatiert , da kein Scripting erforderlich ist (obwohl dies sicherlich möglich ist!). Sie können jede dieser Abfragen direkt in die cmd-Konsole eingeben:
Oben ist die Länge der Prozessorwarteschlange angegeben . Dies gibt an, wie viele Threads in der Warteschlange auf die Verarbeitung durch die CPU warten. Hohe Zahlen schlecht, niedrige Zahlen gut. Generell halte ich einen Wert <10 für ein gesundes System.
Oben ist unter Speicher, Seiteneingabe pro Sekunde die Rate angegeben, mit der Seiten von der Festplatte gelesen werden, um Hardwareseitenfehler zu beheben. Hard-Page-Fehler treten auf, wenn ein Prozess auf eine Seite im virtuellen Speicher verweist, die sich nicht im physischen Speicher befindet und von der Festplatte abgerufen werden muss. Dieser Zähler funktioniert jedoch am besten in Perfmons Diagrammansicht. Auf einem fehlerfreien Computer treten gelegentlich Spitzen auf, wenn Daten von der Festplatte in den Arbeitsspeicher gelesen werden. Je mehr Spitzen angezeigt werden und je höher diese Werte sind, desto mehr Speicher ist für das System eingeschränkt. Wenn das System häufig länger als beispielsweise fünf Sekunden auf einem Wert ungleich Null bleibt, liegt wahrscheinlich ein System mit Speicherengpass vor.
Oben ist PhysicalDisk (Durchschnittliche Länge der Festplattenwarteschlange) angegeben . Ich halte dies für den Hauptindikator für den Systemzustand, da durch übermäßiges Auslagern von Auslagerungsdateien auch Speicherengpässe auftreten und die CPU-Auslastung häufig erhöht wird. Es wird ein Element für jede gemountete Festplatte sowie die Gesamtheit aller Festplatten angezeigt. Bei einer leistungsfähigen Einzelplatte liegt dieser Wert bei 2 oder darunter. Teilen Sie für Arrays die Anzahl der Spindeln durch die Warteschlangenlänge (z. B .: 4 Spindeln im Array geteilt durch eine Warteschlangenlänge von 8 = 2, was bedeutet, dass das Array eine gute Leistung erbringt).
Und schließlich haben wir oben NIC-Leistung. Insbesondere Netzwerkschnittstelle, Länge der Ausgabewarteschlange und Fehler bei den empfangenen Paketen . Diese beiden Zähler teilen uns mit, wie viele Pakete auf den Versand warten und wie viele eingehende Pakete Fehler verursacht haben, die wahrscheinlich zu erneuten Übertragungen geführt haben. Wir wollen, dass beide Zahlen bei Null bleiben. Bei dieser Abfrage erhalte ich auch die aktuelle Bandbreite der Netzwerkkarte, die nützliche Informationen enthält.
Sobald ich festgestellt habe, welche Ressource überlastet ist, hänge ich normalerweise entweder vom Process Explorer oder vom Perfmon-Prozessobjekt ab, um herauszufinden, welcher Prozess das Ressourcenschwein ist.
quelle