
Estou tentando confirmar um comportamento que estou observando ou procuro ajuda para identificar meu problema.
Ao usar o Monitor de desempenho para coletar dados em diversas instâncias do mesmo processo, o mesmo nome de instância é associado a PIDs diferentes. Olhando especificamente para os valores \.NET CLR Memory()\Process ID
e \Process()\ID Process
.
Identifiquei o comportamento com o processo do Microsoft Dynamics Nav Server, dupliquei em outro servidor e reproduzi o problema em um terceiro servidor usando o processo w3wp.
Esse é o comportamento esperado?
Presumi incorretamente que ambos os valores seriam iguais?
Meu palpite é que as métricas do .NET tratam os nomes das instâncias de maneira diferente das outras métricas de desempenho, mas não encontrei nada documentado que suporte essa teoria.
Antecedentes e como duplicar
Ao tentar coletar dados do Performance Monitor para enviar ao nosso sistema de monitoramento (Zabbix). Devido a comoPerfMon lida com múltiplas instânciasdo mesmo processo, estou usando um script Powershell para traduzir de nome amigável para nome de instância por meio do PID. Em seguida, uso o nome da instância coletada para extrair as métricas necessárias do PerfMon e relatá-las usando o nome amigável.
Os seguintes comandos do Powershell fornecem diferentes IDs de processo para o mesmo nome de instância:
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
A microsoft.dynmaics.nav.server#3
instância está associada ao PID 3308 e 3324, dependendo da métrica extraída.
Dupliquei o problema com o w3wp em outro 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
A w3wp#2
instância está associada ao PID 5924 e 4396.
Também verifiquei os valores diretamente no Monitor de desempenho.
Minha solução é apenas extrair os nomes das instâncias uma segunda vez para as métricas baseadas em .NET, para que eu tenha uma solução para meu processo.
Estou mais tentando entender por que isso é necessário com esta pergunta.
dr; A Microsoft está me iluminando?