다음을 통해 공유


중복 인스턴스 이름 처리

공급자는 고유한 인스턴스 이름을 사용하는 것이 좋지만 모든 공급자가 사용하는 것은 아닙니다. 중복 인스턴스 이름을 표시하는 규칙은 이름의 첫 번째 발생을 제외하고 인스턴스 이름에 문자와 일련 번호를 추가하는 # 것입니다. 예를 들어 샘플에 세 개의 svchost 인스턴스가 있는 경우 세 개의 이름이 , svchost#1svchost#2.로 svchost표시됩니다.

아쉽게도 이 규칙이 문제를 완전히 해결하지는 못합니다. 일련 번호는 특정 인스턴스 이름이 샘플에 표시되는 순서에 따라 할당되며 이 순서는 샘플에서 샘플로 일치하지 않을 수 있습니다. 예를 들어 샘플 A는 (PID 100), svchost#1 (PID 200) 및 svchost#2 (PID 300)를 볼 svchost 수 있습니다. 그런 다음 PID 100을 사용하는 svchost가 종료되면 다음 샘플에서 (PID 200) 및 svchost#1 (PID 300) 볼 svchost 수 있습니다. 기본 일치 논리는 샘플 B의 svchost#1 통계(PID 300)와 샘플 B의 통계(PID 300)에 대해 샘플 A의 svchost#1 통계를 일치시키려고 시도합니다. 오류는 샘플에 고유하지 않은 새 인스턴스가 표시되거나 고유하지 않은 인스턴스가 샘플에 표시되지 않을 때(추가/제거된 인스턴스가 마지막 인스턴스가 아닌 경우) 발생합니다.

프로세스 카운터 세트

EXE 이름이 고유하지 않더라도 프로세스의 EXE 이름만 인스턴스 이름으로 사용하기 때문에 이 문제는 카운터 세트에 특히 문제가 Process 됩니다. 호환성 문제로 인해 Windows에서 카운터 세트의 Process 기본 동작을 변경할 수 없습니다.

Windows 11 이상에는 새 Process V2 카운터 세트가 포함됩니다. 카운터 세트에는 Process V2 카운터 세트의 이름 중복 문제를 방지하는 PID(프로세스 ID)가 인스턴스 이름에 Process 포함됩니다.

레지스트리 키 아래에 레지스트리 ThreadNameFormat 값을 설정하여 고유한 인스턴스 이름을 사용하도록 및 Thread 카운터 세트의 ProcessNameFormat 동작 ProcessHKLM\System\CurrentControlSet\Services\Perfproc\Performance 변경할 수 있습니다.

주의

카운터 세트에 Process 고유한 인스턴스 이름을 사용하도록 설정하면 일부 프로그램에서 고유하지 않은 명명 패턴이 예상되므로 일부 프로그램이 잘못 동작할 수 있습니다. 예를 들어 잘 알려진 특정 EXE 이름을 가진 인스턴스를 찾는 프로그램은 고유한 인스턴스 이름을 사용하도록 설정한 후에 해당 인스턴스를 더 이상 찾을 수 없습니다.

이러한 값에 대한 레지스트리 유형은 .입니다 REG_DWORD. 값을 설정하면 2 프로세스 인스턴스 이름에 PID(프로세스 식별자)가 추가되고 TID(스레드 식별자)가 스레드 인스턴스 이름에 추가됩니다. 이 기능을 사용하지 않도록 설정하려면 값을 1로 설정하거나 값을 삭제합니다.