So richten Sie die Überwachung ein, um bei hoher Systemauslastung von Windows zu warnen

  • Adam Bertram

    @adbertram

  • 6. April 2020, 11:18 Uhr EDT

 Perfmon

Eines der am meisten übersehenen Tools in Windows ist Perfmon, auch bekannt als Performance Monitor. Dieses Dienstprogramm hat viele übersehene Fähigkeiten, eine davon ist die Fähigkeit, auf verschiedene metrische Bedingungen aufmerksam zu machen. In diesem Artikel erfahren Sie, wie Sie die Warnfunktion von Perfmon bei hoher CPU-Auslastung richtig nutzen können.

Was ist Perfmon?

Performance Monitor ist seit den Anfängen von Windows in verschiedenen Iterationen verfügbar und als MMC-Snap-In für Windows verfügbar, um die Überwachung der Systemauslastung und verschiedener Leistungsmetriken zu unterstützen. Die Standardansicht beim Start hebt einige verschiedene Bereiche und Echtzeitmetriken hervor.

  • Leistungsmonitor – Echtzeitanzeige von Metriken
  • Datenerfassungssätze – Definierte Erfassung von Daten über ein bestimmtes Zeitintervall
  • Berichte – Anzeigen der in den Datenerfassungssätzen gesammelten Daten

Wenn der Leistungsmonitor nicht als Administrator gestartet wird, ist sein Dienstprogramm eingeschränkt, und die Datensammlungssätze oder Berichte werden möglicherweise nicht angezeigt.

Anzeigen von Metriken

Wenn Sie zum ersten Mal auf den Leistungsmonitor klicken, wird ein sich bewegendes Liniendiagramm angezeigt, das standardmäßig %Processor Time ist. Dies ist an sich nicht besonders nützlich, da die Daten ein rollender Wert sind und wir wirklich wissen wollen, ob es widrige Bedingungen gibt.

Sie können diesem Diagramm zusätzliche Metriken hinzufügen, indem Sie auf das grüne Plus klicken und weitere Metriken hinzufügen. Beachten Sie, dass die Werteskala möglicherweise nicht zwischen verschiedenen Datenpunkten übereinstimmt und daher weniger nützlich sein kann, wenn sie in einem einzelnen Diagramm kombiniert wird.

Datenerfassungssätze

Echtzeitdaten sind nützlich, aber nicht das, wonach wir letztendlich suchen. Wie warnen wir dann unter bestimmten Bedingungen, in diesem Fall einer hohen CPU-Auslastung, die im Laufe der Zeit anhält?

Werbung

Hier kommen Data Collector Sets ins Spiel. Nachdem Sie Data Collector Sets erweitert haben, klicken Sie mit der rechten Maustaste auf Benutzerdefiniert → Neu → Data Collector Set.

Sie haben die Möglichkeit, den Satz zu benennen und zu entscheiden, ob Sie den Satz aus einer Vorlage oder manuell erstellen möchten. In diesem Fall müssen wir unsere Konfiguration manuell erstellen.

In diesem Fall richten wir eine Leistungsindikatorwarnung ein. Dies überwacht einen bestimmten Zähler und dann können wir die Warnung anweisen, bestimmte Aktionen auszuführen.

Da wir den gesamten CPU-Prozentsatz überwachen möchten, ist es am wichtigsten, die richtige zu überwachende Metrik auszuwählen. Hier wählen wir Processor → _Total , indem wir neben der ausgewählten Instanz auf „Add >>“ klicken.

Werbung

Ein Problem ist, dass Sie alle Prozessor _Total Metriken erhalten. Letztendlich wollen wir nur die Metrik \Processor(_Total)\% Processor Time . Um die anderen zu entfernen, wählen Sie jede aus und klicken Sie auf die Schaltfläche Entfernen.

Leider können Sie beim Entfernen nicht einfach mehrmals auf die Schaltfläche Entfernen klicken, da das ausgewählte Element jedes Mal wieder nach oben verschoben wird. Wählen Sie jede Metrik einzeln aus und klicken Sie auf Entfernen.

Wir müssen jetzt dem Leistungsindikator mitteilen, an welchem Punkt die Warnung beginnen soll, und in diesem Fall möchten wir, dass sie nur dann alarmiert wird, wenn sie über 95 liegt.

Speichern und schließen Sie schließlich den Data Collector-Satz.

Konfigurieren von Warnungen

Mit unserer Standardkonfiguration aus dem Weg, müssen wir jetzt konfigurieren, welche Warnaktion stattfinden wird. Es gibt zwei Möglichkeiten, die Warnungen festzulegen: Warnaktion und Warnaufgabe. Wählen Sie Ihren benutzerdefinierten → High CPU Usage Data Collector-Satz aus, klicken Sie mit der rechten Maustaste auf den Standardeintrag DataCollector01 und wählen Sie Eigenschaften.

Der einfachste Weg, die Überwachung von Einträgen zu starten, besteht darin, zur Registerkarte Alarmaktion zu navigieren und auf das Kontrollkästchen „Eintrag im Anwendungsereignisprotokoll protokollieren“ zu klicken. Sie haben auch die bequeme Möglichkeit, einen anderen Datenerfassungssatz zu starten, wenn die Kriterien für eine Warnung erfüllt sind. Auf diese Weise können Sie bei Bedarf zusätzliche Protokollierung sammeln. Hier werden wir jedoch nur einen Eintrag protokollieren.

Konfigurieren einer Warnungsaufgabe

Dies ist alles schön und gut, aber letztendlich erhalten wir in diesem Fall keine tatsächliche Warnung, sondern nur einen neuen Ereignisprotokolleintrag. Auf der Registerkarte Warnungsaufgabe können wir diesen Datensammler anweisen, eine geplante Aufgabe zu starten und einige Parameter zu senden, die dann die gewünschten Warnungsaktionen ausführen können. Damit das funktioniert, müssen wir zwei Dinge tun. Erstellen Sie das auszuführende Skript und die geplante Aufgabe selbst.

Protokollierungsskript

Unten finden Sie ein sehr einfaches Protokollierungsskript. Wir lesen die von der Warnungsaufgabe ausgegebenen Warnungsmetriken ein und senden diese Ergebnisse an eine Protokolldatei.

HighCPUAlert.ps1

$Date = $args $Threshold = $args $Counter = $args $Value = " {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter Add-Content -Value $Value -Path 'C:\HighCPUAlert.log' 

Geplante Aufgabe

Hier müssen wir die geplante Aufgabe erstellen, die das Skript beim Aufruf durch den Datensammler tatsächlich ausführt. Wir verwenden PowerShell, um die geplante Aufgabe zu erstellen, und PowerShell 7 als Laufzeit, wie durch die ausführbare Datei pwsh.exe angegeben.

$Params = @{ "Action" = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:\HighCPUAlert.ps1 $(Arg0)" "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount "Settings" = New-ScheduledTaskSettingsSet } New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert' 

Bis zur offiziellen Veröffentlichung von PowerShell 7 kann die ausführbare Datei pwsh-preview.exe sein.

Warnungsaufgabe konfigurieren

Schließlich müssen wir die Warnungsaufgabe auf dem Datensammler konfigurieren. Navigieren Sie dazu erneut zu den Eigenschaften von DataCollector01 und geben Sie die folgenden Details ein.

Wir zitieren die Task-Argumente, da sie als Zeichenfolgen in PowerShell eingehen. Indem wir sie zitieren, machen wir es daher einfach, die Argumente nach Index zu trennen, dh $arg oder $arg .

Sobald Sie auf Speichern klicken, werden Sie möglicherweise zur Eingabe eines Berechtigungsnachweises aufgefordert.

Ausführen des Datensammlers

Wenn Sie mit der rechten Maustaste auf den Datensammlersatz, Hohe CPU-Auslastung und Auswahl von Start klicken, beginnen Sie mit dem Erfassungsvorgang. Wenn Sie die geplanten Aufgaben überwachen, wird die neu erstellte geplante Aufgabe je nach eingestelltem Überwachungsintervall und Schwellenwert regelmäßig ausgeführt.

Fazit

Mithilfe der integrierten Überwachungstools von Windows können Sie einige nützliche und leistungsstarke Überwachungslösungen rund um Core Utilities und PowerShell strukturieren. Mit dieser Flexibilität können Sie fast jedem Problem auf den Grund gehen, das über die metrische Datenerfassung diagnostiziert werden kann!

Adam Bertram
Adam Bertram ist ein über 20-jähriger IT-Veteran und ein erfahrener Online-Business-Profi. Er ist Berater, Microsoft MVP, Blogger, Trainer, veröffentlichter Autor und Content-Vermarkter für mehrere Technologieunternehmen. Informieren Sie sich über Adams Artikel unter adamtheautomator.com , verbinden Sie sich auf LinkedIn oder folgen Sie ihm auf Twitter unter @adbertram.Lesen Sie die vollständige Biografie “

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.