동일한 PID에 대해 PerfMon의 다른 프로세스 이름

동일한 PID에 대해 PerfMon의 다른 프로세스 이름

나는 내가 보고 있는 행동을 확인하려고 노력하고 있거나 내 문제를 식별하는 데 도움을 찾고 있습니다.

성능 모니터를 사용하여 동일한 프로세스의 여러 인스턴스에 대한 데이터를 수집하는 경우 동일한 인스턴스 이름이 다른 PID와 연결됩니다. 구체적으로 \.NET CLR Memory()\Process ID및 값을 살펴보세요 \Process()\ID Process.

Microsoft Dynamics Nav Server 프로세스의 동작을 식별하고 이를 다른 서버에 복제한 다음 w3wp 프로세스를 사용하여 세 번째 서버에서 문제를 재현했습니다.

이것이 예상되는 동작입니까?

두 값이 동일할 것이라고 잘못 가정했나요?

내 생각엔 .NET 측정항목이 다른 성능 측정항목과 다르게 인스턴스 이름을 처리하는 것 같지만 이 이론을 뒷받침하는 문서를 찾지 못했습니다.


배경 및 복제 방법

모니터링 시스템(Zabbix)으로 보내기 위해 성능 모니터 데이터를 수집하려고 합니다. 어떻게 때문에PerfMon은 여러 인스턴스를 처리합니다.동일한 프로세스에서 Powershell 스크립트를 사용하여 PID를 통해 친숙한 이름을 인스턴스 이름으로 변환하고 있습니다. 그런 다음 수집된 인스턴스 이름을 사용하여 PerfMon에서 필요한 지표를 가져오고 친숙한 이름을 사용하여 다시 보고합니다.

다음 Powershell 명령은 동일한 인스턴스 이름에 대해 서로 다른 프로세스 ID를 제공합니다.

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

인스턴스 microsoft.dynmaics.nav.server#3는 가져오는 지표에 따라 PID 3308 및 3324와 연결됩니다.

다른 서버에서 w3wp 문제를 복제했습니다.

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

인스턴스 w3wp#2는 PID 5924 및 4396과 연결되어 있습니다.

또한 성능 모니터에서 직접 값을 두 번 확인했습니다.


해결 방법은 .NET 기반 메트릭에 대해 인스턴스 이름을 두 번째로 가져와 프로세스에 대한 솔루션을 얻는 것입니다.

나는 이 질문에 이것이 왜 필요한지 이해하려고 노력하고 있습니다.

tl;dr; Microsoft가 나에게 가스라이팅을 하고 있나요?

관련 정보