Freigeben über


Behandeln doppelter Instanznamen

Obwohl Anbietern dringend empfohlen wird, eindeutige Instanznamen zu verwenden, tun dies nicht alle Anbieter. Die Konvention zum Anzeigen doppelter Instanznamen besteht darin, den Instanznamen ein #-Zeichen und eine Seriennummer anzufügen, mit Ausnahme des ersten Vorkommens des Namens. Wenn es beispielsweise drei Instanzen von svchost in einem Beispiel gibt, werden die drei Namen als svchost, svchost#1und svchost#2 angezeigt.

Leider löst diese Konvention das Problem nicht vollständig. Seriennummern werden basierend auf der Reihenfolge zugewiesen, in der ein bestimmter Instanzname in einem Beispiel angezeigt wird, und diese Reihenfolge kann von Beispiel zu Beispiel inkonsistent sein. Beispiel A könnte beispielsweise wie folgt aussehen: svchost (PID 100), svchost#1 (PID 200) und svchost#2 (PID 300). Wenn dann svchost mit PID 100 beendet wird, würde das nächste Beispiel wie folgt aussehen: svchost (PID 200) und svchost#1 (PID 300). Die grundlegende Abgleichslogik würde versuchen, die svchost#1-Statistik von Beispiel A (von PID 200) anhand der svchost#1-Statistik von Beispiel B (von PID 300) abzugleichen, was zu ungültigen Ergebnissen für Beispiel B führt. Fehler treten auf, wenn eine neue nicht eindeutige Instanz in einem Beispiel angezeigt wird oder wenn eine nicht eindeutige Instanz nicht in einem Beispiel angezeigt wird (es sei denn, die hinzugefügte/entfernte Instanz war die letzte).

„Process“-CounterSet

Dieses Problem ist besonders problematisch für das Process-CounterSet, da nur der EXE-Name des Prozesses als Instanzname verwendet wird, obwohl der EXE-Name nicht eindeutig ist. Das Standardverhalten des Process-CounterSets unter Windows kann aufgrund von Kompatibilitätsproblemen nicht geändert werden.

Tipp

Windows 11 und höher enthalten das neue Process V2-CounterSet. Das Process V2-CounterSet schließt die Prozess-ID (PID) in den Instanznamen ein, wodurch das Problem der Namensduplizierung des Process-CounterSets vermieden wird.

Sie können das Verhalten der CounterSets Process und Thread ändern, um eindeutige Instanznamen zu verwenden, indem Sie die Registrierungswerte ProcessNameFormat oder ThreadNameFormat unter dem Registrierungsschlüssel HKLM\System\CurrentControlSet\Services\Perfproc\Performance festlegen.

Achtung

Das Aktivieren eindeutiger Instanznamen für das Process-CounterSet kann dazu führen, dass sich einige Programme nicht ordnungsgemäß verhalten, da viele Programme das nicht eindeutige Namensmuster erwarten. Beispielsweise kann ein Programm, das nach einer Instanz mit einem bestimmten bekannten EXE-Namen sucht, diese Instanz nach dem Aktivieren eindeutiger Instanznamen nicht mehr finden.

Der Registrierungstyp für diese Werte ist REG_DWORD. Durch Festlegen des Werts auf 2 wird der Prozessbezeichner (PID) an den Prozessinstanznamen und der Threadbezeichner (TID) an den Threadinstanznamen angefügt. Um dieses Feature zu deaktivieren, legen Sie den Wert auf 1 fest, oder löschen Sie den Wert.