Diferentes nombres de procesos en PerfMon para el mismo PID

Diferentes nombres de procesos en PerfMon para el mismo PID

Estoy tratando de confirmar un comportamiento que estoy viendo o busco ayuda para identificar mi problema.

Cuando se utiliza Performance Monitor para recopilar datos en varias instancias del mismo proceso, el mismo nombre de instancia se asocia con diferentes PID. Específicamente mirando los valores \.NET CLR Memory()\Process IDy \Process()\ID Process.

Identifiqué el comportamiento con el proceso de Microsoft Dynamics Nav Server, lo dupliqué en otro servidor y reproduje el problema en un tercer servidor usando el proceso w3wp.

¿Es este el comportamiento esperado?

¿Asumí incorrectamente que ambos valores serían iguales?

Supongo que las métricas de .NET manejan los nombres de las instancias de manera diferente que las otras métricas de rendimiento, pero no he encontrado nada documentado que respalde esta teoría.


Antecedentes y cómo duplicar

Al intentar recopilar datos de Performance Monitor para enviarlos a nuestro sistema de monitoreo (Zabbix). Debido a comoPerfMon maneja múltiples instanciasDel mismo proceso, estoy usando un script de Powershell para traducir de un nombre descriptivo a un nombre de instancia a través del PID. Luego uso el nombre de la instancia recopilada para extraer las métricas requeridas de PerfMon y reportarlas usando el nombre descriptivo.

Los siguientes comandos de Powershell proporcionan diferentes ID de proceso para el mismo nombre de instancia:

PS > (Get-Counter "\Process(microsoft.dynamics.nav.server#3)\ID Process").CounterSamples.CookedValue
3308
PS > (Get-Counter "\.NET CLR Memory(microsoft.dynamics.nav.server#3)\Process ID").CounterSamples.CookedValue
3324

La microsoft.dynmaics.nav.server#3instancia está asociada con PID 3308 y 3324 según la métrica que extraiga.

He duplicado el problema con w3wp en otro servidor:

PS > (Get-Counter "\Process(w3wp#2)\ID Process").CounterSamples.CookedValue
5924
PS > (Get-Counter "\.NET CLR Memory(w3wp#2)\Process ID").CounterSamples.CookedValue
4396

La w3wp#2instancia está asociada con los PID 5924 y 4396.

También verifiqué dos veces los valores directamente en Performance Monitor.


Mi solución es simplemente extraer los nombres de las instancias por segunda vez para las métricas basadas en .NET para tener una solución para mi proceso.

Estoy más tratando de entender por qué es necesario con esta pregunta.

tl;dr; ¿Microsoft me está engañando?

información relacionada