Поделиться через


Обработка повторяющихся имен экземпляров

Хотя поставщики настоятельно рекомендуется использовать уникальные имена экземпляров, а не все поставщики. Соглашение о отображении повторяющихся имен экземпляров заключается в добавлении # символа и серийного номера к имени экземпляра, за исключением первого вхождения имени. Например, если в примере есть три экземпляра 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 счетчиков, чтобы использовать уникальные имена экземпляров, задав ProcessNameFormatThreadNameFormat значения реестра в HKLM\System\CurrentControlSet\Services\Perfproc\Performance разделе реестра.Process

Внимание

Включение уникальных имен экземпляров для Process набора счетчиков может привести к неправильному ведении некоторых программ, так как многие программы ожидают неуникаленного шаблона именования. Например, программа, которая ищет экземпляр с определенным известным именем EXE, больше не сможет найти этот экземпляр после включения уникальных имен экземпляров.

Тип реестра для этих значений REG_DWORD. Задание значения для 2 добавления идентификатора процесса (PID) к имени экземпляра процесса и идентификатору потока (TID) к имени экземпляра потока. Чтобы отключить эту функцию, задайте значение 1 или удалите значение.