Sitzungen

Windows Performance Recorder (WPR) erweitert die Ereignisablaufverfolgung für Windows (ETW). Eine ETW-Protokollierungssitzung ist eine Sammlung von speicherinternen Puffern, die Ereignisse über die ETW-Anbieteranwendungsprogrammierschnittstelle (API) akzeptiert. Diese Puffer werden in der Regel nicht ausgelagert und vom Kernel verwaltet. ETW weist jedem Prozessor einen Puffer zu. DIE ETW-Ereignisgenerierung und -pufferung ist sperrenfrei, um ETW zum Protokollieren aller Arten von Ereignissen zu ermöglichen.

Jedes Mal, wenn ETW die EventWrite-Methode aufruft, reserviert ETW Speicherplatz im aktuellen Puffer, den ETW dem Prozessor zugewiesen hat, der den aufrufenden Thread ausführt. Anschließend kopiert ETW die Ereignisheader- und Benutzerdaten in diesen Bereich. Wenn der Puffer voll ist, leert ETW den Puffer in die Protokolldatei der Protokollierungssitzung oder den Echtzeitstreaming-Consumer. ETW weist diesem Prozessor dann einen freien Puffer zu.

Wenn der Protokollierungsdurchsatz die Fähigkeit der Flusher-Funktion überschreitet, Puffer frei zu machen, ist möglicherweise kein verfügbarer Pufferspeicher in der Protokollierungssitzung verfügbar. Dies kann beispielsweise auftreten, weil der Datenträgerschreibdurchsatz niedriger ist als der eingehende Ereignisdurchsatz. Dies bewirkt, dass EventWrite einen ERROR_NOT_ENOUGH_MEMORY-Fehler auslöst und die Ereignisdaten verliert. In solchen Fällen erhöht ETW die EventsLost-Eigenschaft der Protokollierungssitzung, sodass Consumer den Datenverlust sehen können.

Weitere Informationen zum Vermeiden des Verlusts von Ereignissen in einer Aufzeichnung finden Sie unter Vermeiden verlorener Ereignisse.

Protokollierung im Arbeitsspeicher oder in einer Datei

Sie können Profile so konfigurieren, dass die Ereignisdaten in Puffern im Arbeitsspeicher oder in einer Datei gespeichert werden. Der Puffermodus ist eine zirkuläre In-Memoy-Sitzung. Sie können den Inhalt dieser Sitzung auf Anforderung als Momentaufnahme in einer ETL-Datei (Event Trace Log) speichern. WPR löscht den Inhalt des In-Memory-Speicherpufferbereichs nicht, wenn Sie den Inhalt speichern.

Sie können Puffermodussitzungen ständig aktiviert lassen. Dies ist besonders nützlich, wenn Sie nicht wissen, wann das Verhalten, das von Interesse ist, auftritt. Wählen Sie den Puffermodus aus, wenn der erforderliche zirkuläre Pufferspeicherplatz so klein ist, dass er im Arbeitsspeicher gehalten zu werden. Sequenzielle Protokolldateien eignen sich am besten für kontrollierte Szenarien. Sie können beispielsweise sequenzielle Protokolldateien für Regressionstests verwenden oder wenn das Auftreten des gewünschten Verhaltens leichter vorherzusagen ist.

Weitere Informationen zu Protokollierungsoptionen finden Sie unter Protokollierungsmodus.

Aufzeichnungsprofile

Jede Sitzung wird durch ein Aufzeichnungsprofil gesteuert. Bei dem Profil kann es entweder um ein integriertes Profil oder um ein benutzerdefiniertes Profil handeln. Weitere Informationen finden Sie unter Aufzeichnungsprofile.

Puffergröße

Die Puffergröße ist für die Steuerung der E/A-Effizienz wichtig und stellt sicher, dass WPR keine großen Ereignisse überspringen kann. Sehr kleine Puffer können die E/A-Schreibeffizienz verringern. Wir empfehlen eine Mindestpuffergröße von 64 KB oder 128 KB, um eine gute Schreibleistung zu fördern und den Mehraufwand für den Datenträger und verlorene Ereignisse zu verringern. Die Puffergröße bestimmt die maximale Dauer einer Aufzeichnung. ETW beschränkt die größte Ereignisgröße auf ca. 64 KB.

Collectors

Sie müssen im Aufzeichnungsprofil einen System-Collector und mindestens einen Ereignis-Collector für eine Sitzung definieren. Der Collector-Name muss auf dem System eindeutig sein, und das System muss exklusiven Schreibzugriff auf die Protokolldatei haben. Der Name der Protokolldatei muss auch unter den Dateinamen aller Collectors eindeutig sein. WPR erweitert keine Umgebungsvariablen, sodass der Pfad zur Protokolldatei ohne Umgebungsvariablen angegeben werden muss. Weitere Informationen finden Sie unter 1. Definitionen für Collector.

Anbieter

Protokollierungssitzungen sammeln Daten aus einer definierten Gruppe von System- und Ereignisanbietern. Dies ist ein wichtiges Element, das pro Sitzung konfiguriert werden soll. Die meisten Anbieter können eine n:n-Beziehung zu Sitzungen haben. Für einige Ereignisse sind spezielle Anbieter erforderlich, z. B. Kernel- oder Heapereignisse. Weitere Informationen finden Sie unter Anbieter.

WPR-Features

WPA häufige Szenarien

Aufzeichnungsprofile

Puffer

BufferSize