PID процесса в сборщиках PerfMon


Одним из неудобств при работе с PerfMon является то, что одноименные процессы именуются по-порядку, с добавлением суффикса #n к имени процесса. Описана настройка, позволяющая устранить этот недостаток.

При настройке записи счетчиков производительности, а также их последующем анализе, в системах на базе различных версий Windows, в большинстве случаев применяется встроенный инструментарий в виде Windows Perfomance Monitor, или коротко PerfMon.

Одним из существенных неудобств при работе с PerfMon является то, что одноименные процессы именуются по-порядку, с добавлением суффикса #n к имени процесса.

Эта особенность не позволяет идентифицировать конкретный процесс, чтобы можно было, к примеру, произвести анализ техжурнала на предмет поиска причин нештатного поведения процесса, а также видеть что реально происходит с процессами (падения, перезапуски и т.д.).

Обычное представление процессов счетчиков PerfMon

 

Например, в данном случае, видно что с процессом rphost#8 что-то произошло. Можно даже догадаться что один процесс "упал" и вместо него запустился новый, получивший то же имя. Однако бывают гораздо менее понятные "картинки".

К счастью, есть способ исправить данную особенность.

Необходимо в реестре Windows открыть ветвь HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPerfProcPerformance и добавить ключ с именем ProcessNameFormat типа DWORD и установить ему значение 2.

Значения ключа:
1 — PID не используется в именах процессов (по-умолчанию);
2 — PID используется.

После изменения достаточно перезапустить сборщик, чтобы получить имена процессов в формате Process_PID

Представление процессов с указанием PID в счетчиках PerfMon

Результирующая картинка уже позволяет увидеть что процесс rphost, имеющий PID 7252 проработал около 5 минут и завершился. Техжурнал можно смотреть уже по конкретному процессу.

Ссылка на источник (Microsoft, eng)

Замечание: В источнике есть дисклаймер: Important If you enable this feature, you may be unable to monitor process-specific information by using third-party utilities or custom-made programs.

Мой вариант перевода для невладеющих (владеющие, думаю, уже прочли самостоятельно):

"Если вы включите эту функцию, у вас могут возникнуть проблемы с отслеживанием информации о процессах при использовании сторонних утилит или пользовательских программ."

9 Comments

  1. tormozit

    Кажется должен быть более простой путь сделать то же самое.

    Reply
  2. user-z99999

    (1)

    Может быть создавать счетчики через logman? Моежет там можно указать имена.

    Reply
  3. MVK80

    (1) Похоже, что нет: https://support.microsoft.com/ru-kz/help/281884/the-process-object-in-performance-monitor-can-display-process-ids-pids

    Считаю необходимым указать следующую информацию из ссылки выше:

    «Важно! Если вы включите эту функцию, вы не сможете отслеживать информацию, относящуюся к процессу, используя сторонние утилиты или пользовательские программы.»

    Reply
  4. -vito-

    (2) Ничто не мешает попровать, так ведь?

    Reply
  5. -vito-

    (1) Сергей, полагаете есть более простой способ, чем добавление ключа Реестра?

    Если действительно есть, я с радостью приму его к сведению.

    В своё время, когда меня окончательно «добили» эти номера процессов, я нашел лишь такое решение где-то в бужунете (в Рунете о нём не было ни слова). Полагаю, что и сейчас картина примерно такая же.

    Reply
  6. Andrefan

    (1) в одной из статей на kb.1c.ru описан такой же подход. Как ещё можно это сделать, просвятите пожалуйста?

    Reply
  7. -vito-

    (6) Вы не могли бы уточнить в какой именно статье на kb это описано? Все эти статьи мне знакомы, прочитаны не по одному разу и используются в работе постоянно. Поэтому я не поленился поискать. Не нашел. Могу предположить, что Вы имели ввиду статью «Мониторинг на продукционных серверах» (ту её часть, где речь идет о дампах).

    Reply
  8. -vito-

    (3) Спасибо. Добавил дисклаймер. Только в несколько более «мягком» переводе: «..могут возникнуть проблемы … при использовании сторонних утилит..»

    Reply
  9. Andrefan

    Ой, я видел это довольно давно, кажется статья была связана с проблемой, которую сложно отловить не идентифицировав однозначно процесс. Также не исключаю, что это был не kb, но кажется всё-таки kb, уверен на 99%. Если найду, обязательно отпишусь.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *