Freigeben über


Behandeln von Problemen mit Leistungsmonitor

Dieser Artikel hilft bei der Behandlung von Problemen mit Leistungsmonitor.

Was ist Leistungsmonitor (perfmon)?

Nachdem Leistungsmonitor seit den frühen Tagen von Windows in verschiedenen Iterationen verfügbar war, ist Leistungsmonitor ein MMC-Snap-In in Windows, das die Systemnutzung und verschiedene Leistungsmetriken überwacht. Die Standardansicht beim Öffnen zeigt einige verschiedene Bereiche und Echtzeitmetriken, die Folgendes umfassen:

  • Leistungsmonitor: Echtzeitanzeige von Metriken
  • Datensammlersätze: Definierte Datensammlung innerhalb eines bestimmten Zeitintervalls
  • Berichte: Die in den Datensätzen gesammelten Daten

Fragen vor der Datensammlung

Sobald Probleme auftreten, finden Sie weitere Informationen dazu, was vor einer Problembehandlung und Datensammlung passiert ist.

  • Welche Art von Problem?
  • Kann dieses Problem reproduziert werden?
  • Tritt das Problem sporadisch auf? Wenn ja, welche Aktionen hat der Benutzer ausgeführt?
  • Gibt es ein Muster, das beobachtet wird? Wenn ja, welche Art von Muster?
  • Passiert es nur einmal und nicht mehr?

Beispielsweise tritt sporadisch ein Problem mit hoher CPU-Auslastung auf. Manchmal tritt dieses Problem fünf Minuten nach dem Start des Systems, manchmal nach zwei Stunden usw. auf. Es wird kein Muster beobachtet. Wenn Sie Den Task-Manager oder andere Überwachungstools nachschlagen, können Sie sie nicht beobachten, oder Sie sind nicht sicher, ob die Ausgabe der Überwachungstools zeigt, was passiert.

In dieser Situation benötigen Sie eine allgemeine Übersicht über die Systemressourcen. Dies kann mit einer langfristigen Leistungsmonitor erreicht werden.

Notiz

Leistungsmonitor hat keinen Zugriff auf den Kernel und protokolliert diese Informationen nicht. Darüber hinaus ist Leistungsmonitor im Vergleich zu anderen Protokollierungstools für hohe CPU-Auslastungsprobleme leicht, und es handelt sich um ein integriertes Tool. Sie können Leistungsmonitor lokal oder remote ausführen.

Lokales Ausführen von Leistungsmonitor

Sie können Zähler nach Bedarf hinzufügen. Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten, und führen Sie die folgenden Befehle aus:

  1. Erstellen eines Datensammlersatzes:

    Logman.exe create counter CORE_%computername% -f bin -v mmddhhmm -max 2048 -c "\Memory\*" "\Cache\*" "\Objects\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\PhysicalDisk(*)\*" "\LogicalDisk(*)\*" "\Processor(*)\*" "\Processor Information(*)\*" "\Process(*)\*" "\Server\*" "\System\*" "\Server Work Queues(*)\*" "\Terminal Services\*" "\Terminal Services Session(*)\*" -si 00:00:01
    

    Notiz

    -max 2048 bedeutet, dass die maximale Protokolldateigröße 2 GB beträgt. -si 00:00:01 bedeutet, dass das Intervall second ist 1 . Sie können diese Einstellung basierend auf Ihren Anforderungen ändern.

  2. Starten Sie den Datensammlersatz:

    logman start CORE_%computername%
    
  3. Beenden Sie die Ablaufverfolgung, die unter "c:\perflogs\Admin" gespeichert wird:

    logman stop CORE_%computername%
    

Remoteausführung Leistungsmonitor

Um Leistungsmonitor zum Überwachen des Remotesystems einzurichten, öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten, und führen Sie die folgenden Befehle aus:

  1. Erstellen eines Datensammlersatzes:

    Logman create counter <LOGNAME> -u <DOMAIN\USERNAME> * -f bincirc -v mmddhhmm -max 500 -c "\\<SERVERNAME>\LogicalDisk(*)\*" "\\<SERVERNAME>\Memory\*" "\\<SERVERNAME>\Network Interface(*)\*" "\\<SERVERNAME>\Paging File(*)\*" "\\<SERVERNAME>\PhysicalDisk(*)\*" "\\<SERVERNAME>\Process(*)\*" "\\<SERVERNAME>\Redirector\*" "\\<SERVERNAME>\Server\*" "\\<SERVERNAME>\System\*" "\\<SERVERNAME>\Terminal Services\*" "\\<SERVERNAME>\Processor(*)\*" "\\<SERVERNAME>\Cache\*" -si 00:00:02
    

    Notiz

    Ersetzen Sie <DOMÄNE\BENUTZERNAME> durch die entsprechenden Benutzeranmeldeinformationen und <SERVERNAME> durch den Namen des problematischen Servers.

  2. Starten Sie den Datensammler, indem Sie den folgenden Befehl ausführen:

    logman start <LOGNAME>
    
  3. Sobald der Server nicht mehr reagiert, beenden Sie den Datensammler, indem Sie den folgenden Befehl ausführen:

    logman stop <LOGNAME>
    

Das Leistungsmonitor Protokoll befindet sich im Ordner "C:\PERFLOGS". Zippen Sie dann die .blg Datei, und laden Sie sie nach dem Auftreten des Problems in den Arbeitsbereich hoch.

Nachdem Sie Leistungsmonitor für ein oder zwei Arbeitstage ausgeführt haben, können Sie das Protokoll analysieren, um festzustellen, ob Muster vorhanden sind. Welche Prozesse spitzen die CPU? Und sind die Prozesse jeden Tag oder jede Stunde gleich oder unterschiedlich?

Gehen Sie anhand der Ergebnisse weiter zu den nächsten Schritten, um mehr darüber zu erfahren, was dazu führt, dass sie die CPU verstärken. Identifizieren Sie die Ursache, indem Sie die Abfolge von Prozessen, Threads, Modulen und Funktionen nachverfolgen.

Problembehandlungsbeispiele

Sehen Sie sich die folgenden Beispiele für die Verwendung von TroubleShootingScript (TSS) zum Sammeln von Daten und CpuStres zum Simulieren der CPU-Aktivität an.

Verwenden von TSS

TSS kann eine hohe CPU-Auslastungsablaufverfolgung erhalten, wenn die CPU einen bestimmten Schwellenwert erreicht:

  1. Laden Sie TSS herunter, und extrahieren Sie es in den Ordner "C:\tss" auf dem betroffenen Computer.

  2. Führen Sie an einer PowerShell-Eingabeaufforderung mit erhöhten Rechten das folgende Cmdlet aus dem Ordner "C:\tss " aus.

    .\TSS.ps1 -perfmon general -WaitEvent HighCPU:90 -StopWaitTimeInSec 100
    

    Notiz

    Warten Sie, bis das Problem mit hoher CPU-Auslastung auftritt. Sobald die CPU-Auslastung cpuThreshold>% überschreitet<, sammeln Sie Daten für eine Dauer von StopWaitTimeInSec Settconds (der Standardwert ist 60).

    Weitere Beispiele:

    •  .\TSS.ps1 -PerfMon General -PerfIntervalSec 5 -WaitEvent HighCPU:90
      

      PerfMonstellt Leistungsmonitor mit einem kurzen Intervall dar.

    • .\TSS.ps1 -PerfMonLong SMB -PerfLongIntervalMin 11 -WaitEvent HighCPU:90
      

      PerfMonLongstellt Leistungsmonitor mit einem langen Intervall dar.

  3. Führen Sie an einer neuen PowerShell-Eingabeaufforderung mit erhöhten Rechten das folgende Cmdlet aus dem Ordner "C:\tss " aus.

    .\TSS.ps1 -Stop
    

    Notiz

    Wenn die Ablaufverfolgung nach fünf Minuten nicht beendet wird, beenden Sie sie.

TSS unterstützt Leistungsmonitore. Sie können detaillierte Leistungsindikatornamen anzeigen, indem Sie das .\TSS.ps1 -ListSupportedPerfCounter Cmdlet ausführen.

Beginnen Sie mit dem Erfassen von Leistungsindikatoren mit dem Zähler, der General festgelegt wurde, indem Sie das Cmdlet ausführen:

.\TSS.ps1 -PerfMon General

Wenn Sie das Intervall für das Leistungsprotokoll ändern möchten, verwenden Sie -PerfIntervalSec (die Einheit ist sekunde) oder -PerfIntervalMin (die Einheit ist Minute). Gibt beispielsweise .\TSS.ps1 -PerfMon General -PerfIntervalSec 1 ein Intervall von einer Sekunde an.

Hier sind weitere Beispiele für das .\TSS.ps1 -PerfMon <CounterSetName> Cmdlet:

  • Starten Sie Leistungsmonitor mit allgemeinen Leistungsindikatoren (CPU, Arbeitsspeicher, Datenträger usw.) und einem 5-Sekunden-Intervall:

    .\TSS.ps1 -PerfMon General -PerfIntervalSec 5
    
  • Starten Sie Leistungsmonitor (Long) mit SMB-Zählern (SMB-Zählern und allgemeinen Zählern) und einem 11-Minuten-Intervall:

    .\TSS.ps1 PerfMonLong SMB -PerfLongIntervalMin 11
    

Sie können dies auch mit Leistungsmonitor tun, um die Ablaufverfolgung zu starten, wenn die CPU-Auslastung einen bestimmten Betrag erreicht, aber es ist kompliziert und zeitaufwändig.

Verwenden von CpuStres

Sie können CpuStres verwenden, um eine hohe CPU-Auslastungsaktivität zu simulieren, indem Sie mehrere Threads ausführen. Nach der Ablaufverfolgung des Problems mit hoher CPU-Auslastung für sechs Minuten zeigt Leistungsmonitor Lücken im folgenden Diagramm an, was ein Problem ist:

Screenshot der Leistungsmonitor, die Lücken nach der Nachverfolgung des Problems mit hoher CPU-Auslastung für sechs Minuten zeigt.

Prozessor Mindestanforderungen Maximum Average
% Prozessorzeit 4.688% 100 %% 81.605%

Wenn Sie Zähler für Prozessor hinzufügen: %ProcessorTime, und sehen Sie sich die Instanzen an, dass CPUStres64.exe den höchsten Verbrauch aufweist. Es gibt Fälle, in denen die %Prozessorzeit 100 % überschritten hat, was ungefähr 180 % in den Daten angibt, was erhebliche Spitzen angibt.

Screenshot von Leistungsmonitor, der zeigt, dass CPUStres64.exe der höchste Verbraucher ist.

% Prozessorzeit Mindestanforderungen Maximum Average
CPUSTRES64 0 % 180.309% 19.787%

Screenshot der Leistungsmonitor, die die hinzugefügten Leistungsindikatoreninformationen anzeigt.

Überprüfen Sie die Länge der Prozessorwarteschlange, deren Mittelwert 10 ist>. Dies ist ein Problem. Führen Sie einen Drilldown durch, wer die %Prozessorzeit verwendet.

Dies ist eine Einschränkung der Leistungsmonitor. Es kann nur so viele Daten anzeigen.

Leistungsindikatoren für die CPU-Auslastung

Bei Problemen mit hoher CPU-Auslastung überprüfen Sie zuerst die CPU-Auslastung im Task-Manager. Wenn die CPU-Auslastung kontinuierlich 85 % überschreitet, gibt es an, dass sich das System einem CPU-Engpass gegenübersieht. Hier ist die Liste der Leistungsindikatoren, die überprüft werden müssen:

  • Prozessor: % Prozessorzeit
  • Prozessor: % Benutzerzeit
  • Prozessor: % Berechtigungszeit
  • Prozessor: % Unterbrechungszeit
  • System: Länge der Prozessorwarteschlange
  • System: Anrufe/Sek.
  • System: Kontextschalter/Sek.
  • Prozess: Threadanzahl
  • Prozess: Behandeln der Anzahl

Sehen Sie sich die folgenden Leistungsindikatoren an, die auf verschiedene Leistungsaspekte überwacht werden:

Komponente Überwachter Leistungsaspekt Zu überwachende Leistungsindikatoren
Prozessor Nutzung Prozessor: % Prozessorzeit (alle Instanzen)
Prozessor: % DPC-Zeit
Prozessor: % Unterbrechungszeit
Prozessor: % Privilegierte Zeit
Prozessor: % Benutzerzeit
Prozessor Engpässe Prozessor: % Prozessorzeit (alle Instanzen)
Prozessor: % DPC-Zeit
Prozessor: % Unterbrechungszeit
Prozessor: % Privilegierte Zeit
Prozessor: % Benutzerzeit
Prozessor: Unterbrechungen/Sek.
Prozessor: DPCs in der Warteschlange/Sek.
System: Kontextschalter/Sek.
System: Systemaufrufe/Sek.
System: Länge der Prozessorwarteschlange (alle Instanzen)
Name des Leistungsindikators Metrik
Prozessorwarteschlangenlänge (PQL) Wenn zwei oder mehr Instanzen pro Prozessor vorhanden sind und die CPU-Auslastung hoch ist, überprüfen Sie Die Prozesse auf einen hohen CPU-Verbrauch. Überprüfen Sie auch Kontextschalter, % DPC-Zeit und % Interruptzeit.
% Prozessorzeit 0-50%: gesund.
50-80%: Monitor-/Warnmonitor.
80-100 %: kritisch. Das System funktioniert möglicherweise langsam.
% DPC-Zeit % Prozessorzeit> 85 % und % DPC-Zeit> 15 %: Untersuchen Sie, ob sie ständig über diesen Ebenen liegen. Kurze Spitzen sind in Ordnung.

Beispielsweise nur auf einem Prozessor mit 100 % Prozessorzeit und mehr als 50 % DPC-Zeit.
% Unterbrechungszeit Hohe CPU-Unterbrechungszeit: mehr als 30 % Unterbrechungszeit. Eine hohe Anzahl von % Interrupt-Zeit im Prozessor kann auf ein Hardware- oder Treiberproblem hinweisen.

Sehr hohe CPU-Unterbrechungszeit: mehr als 50 % Unterbrechungszeit. Eine sehr hohe Anzahl von % Interrupt-Zeit im Prozessor kann auf ein Hardware- oder Treiberproblem hinweisen.

References

Haftungsausschluss für Drittanbieterinformationen und Lösungen

Die Informationen und die Lösung in diesem Dokument stellen die aktuelle Ansicht der Microsoft Corporation zu diesen Themen ab dem Datum der Veröffentlichung dar. Diese Lösung ist über Microsoft oder über einen Drittanbieter verfügbar. Microsoft empfiehlt keine Drittanbieter- oder Drittanbieterlösung, die in diesem Artikel beschrieben werden kann. Möglicherweise gibt es auch andere Drittanbieter oder Lösungen von Drittanbietern, die in diesem Artikel nicht beschrieben werden. Da Microsoft auf sich ändernde Marktbedingungen reagieren muss, sollten diese Informationen nicht als Verpflichtung von Microsoft interpretiert werden. Microsoft kann die Richtigkeit von Informationen oder lösungen, die von Microsoft oder von einem erwähnten Drittanbieter präsentiert werden, nicht garantieren oder bestätigen.

Microsoft übernimmt keine Garantien und schließt alle Vertretungen, Garantien und Bedingungen aus, unabhängig davon, ob ausdrücklich, impliziert oder gesetzlich. Diese Bedingungen umfassen, sind jedoch nicht beschränkt auf Darstellungen, Garantien oder Bedingungen des Titels, Nichtverletzung, zufriedenstellende Bedingung, Händlerfreundlichkeit und Eignung für einen bestimmten Zweck, in Bezug auf Dienste, Lösungen, Produkte oder andere Materialien oder Informationen. In keinem Fall haftet Microsoft für jede Drittanbieterlösung, die in diesem Artikel erwähnt wird.