Gestione dei nomi di istanza duplicati
Sebbene i provider siano fortemente invitati a usare nomi di istanza univoci, non tutti i provider lo fanno. La convenzione per la visualizzazione dei nomi di istanze duplicate consiste nell'aggiungere un carattere e un #
numero di serie al nome dell'istanza, ad eccezione della prima occorrenza del nome. Ad esempio, se sono presenti tre istanze di svchost
in un esempio, i tre nomi vengono visualizzati come svchost
, svchost#1
e svchost#2
.
Sfortunatamente, questa convenzione non risolve completamente il problema. I numeri di serie vengono assegnati in base all'ordine in cui viene visualizzato un nome di istanza specifico in un esempio e questo ordine può essere incoerente dal campione all'esempio. Ad esempio, l'esempio A potrebbe vedere svchost
(PID 100), svchost#1
(PID 200) e svchost#2
(PID 300). Se quindi svchost con PID 100 si arresta, l'esempio successivo visualizzerà svchost
(PID 200) e svchost#1
(PID 300). La logica di corrispondenza di base tenterebbe di trovare una corrispondenza tra le statistiche di svchost#1
esempio A (da PID 200) rispetto alle statistiche del svchost#1
campione B (da PID 300), causando risultati non validi per il campione B. Gli errori si verificano quando una nuova istanza non univoca viene visualizzata in un esempio o quando un'istanza non univoca smette di visualizzare in un esempio (a meno che l'istanza aggiunta/rimossa non sia l'ultima).
Contatore del processo
Questo problema è particolarmente problematico per il Process
contatore perché usa solo il nome EXE del processo come nome dell'istanza anche se il nome EXE non è univoco. Il comportamento predefinito del contatore in Process
Windows non può essere modificato a causa di problemi di compatibilità.
Suggerimento
Windows 11 e versioni successive includono il nuovo Process V2
contatore. Il Process V2
contatore include l'ID processo (PID) nel nome dell'istanza che evita il problema di duplicazione dei nomi del Process
contatore.
È possibile modificare il comportamento dei Process
contatori e Thread
per usare nomi di istanza univoci impostando i valori del ProcessNameFormat
Registro di sistema o ThreadNameFormat
nella chiave del HKLM\System\CurrentControlSet\Services\Perfproc\Performance
Registro di sistema.
Attenzione
L'abilitazione di nomi di istanze univoci per il Process
contatore può causare un comportamento non corretto di alcuni programmi, poiché molti programmi prevedono il modello di denominazione non univoco. Ad esempio, un programma che cerca un'istanza con un nome EXE noto specifico non sarà più in grado di trovare tale istanza dopo aver abilitato nomi di istanza univoci.
Il tipo di registro per questi valori è REG_DWORD
. L'impostazione del valore per 2
accoda l'identificatore del processo (PID) al nome dell'istanza del processo e all'identificatore del thread (TID) al nome dell'istanza del thread. Per disabilitare questa funzionalità, impostare il valore su 1 o eliminare il valore.