Обработка повторяющихся имен экземпляров
Хотя поставщики настоятельно рекомендуется использовать уникальные имена экземпляров, а не все поставщики. Соглашение о отображении повторяющихся имен экземпляров заключается в добавлении #
символа и серийного номера к имени экземпляра, за исключением первого вхождения имени. Например, если в примере есть три экземпляра svchost
, три имена отображаются как svchost
, svchost#1
и svchost#2
.
К сожалению, эта конвенция не полностью устраняет проблему. Серийные номера назначаются в зависимости от порядка, в котором в образце отображается определенное имя экземпляра, и этот порядок может быть несогласован с образца на выборку. Например, пример A может увидеть svchost
(PID 100), svchost#1
(PID 200) и svchost#2
(PID 300). Затем, если svchost с PID 100 завершает работу, следующий пример будет видеть svchost
(PID 200) и svchost#1
(PID 300). Базовая логика сопоставления попытается сопоставить статистику примера A svchost#1
(из PID 200) со статистикой образца B (из PID 300), что приведет к недопустимым результатам для примера B svchost#1
. Ошибки возникают, когда новый не уникальный экземпляр отображается в образце или когда не уникальный экземпляр перестает отображаться в образце (если только добавленный или удаленный экземпляр был последним).
Набор счетчиков обработки
Эта проблема особенно проблематична для Process
набора счетчиков, так как она использует только имя EXE процесса в качестве имени экземпляра, даже если имя EXE не является уникальным. Поведение счетчиков Process
по умолчанию в Windows невозможно изменить из-за проблем совместимости.
Совет
Windows 11 и более поздних версий включают новый Process V2
набор счетчиков. Набор Process V2
счетчиков включает идентификатор процесса (PID) в имя экземпляра, что позволяет избежать дублирования имен набора счетчиков Process
.
Вы можете изменить поведение наборов и Thread
счетчиков, чтобы использовать уникальные имена экземпляров, задав ProcessNameFormat
ThreadNameFormat
значения реестра в HKLM\System\CurrentControlSet\Services\Perfproc\Performance
разделе реестра.Process
Внимание
Включение уникальных имен экземпляров для Process
набора счетчиков может привести к неправильному ведении некоторых программ, так как многие программы ожидают неуникаленного шаблона именования. Например, программа, которая ищет экземпляр с определенным известным именем EXE, больше не сможет найти этот экземпляр после включения уникальных имен экземпляров.
Тип реестра для этих значений REG_DWORD
. Задание значения для 2
добавления идентификатора процесса (PID) к имени экземпляра процесса и идентификатору потока (TID) к имени экземпляра потока. Чтобы отключить эту функцию, задайте значение 1 или удалите значение.