Получить номер рабочего процесса IIS 7, получив PID

416
MarkB

Я пытаюсь добавить счетчики производительности для рабочего процесса IIS в набор данных сбора в системном мониторе.

Я знаю идентификатор процесса (PID) рабочего процесса (четырехзначное число). Однако в конфигурации набора сбора данных рабочие процессы IIS перечислены в виде чисел от 1 до числа настроенных рабочих процессов. Они в формате w3wp # 1, w3wp # 2, w3wp # 3 и т. Д.

Так, например, если интересующий меня PID - 3865, как бы я выяснил, что такое w3wp # в Performance Monitor?

1
я думаю, что вы должны включить его в реестре, чтобы показать идентификатор процесса https://blogs.technet.microsoft.com/askperf/2010/03/29/perfmon-identifying-processes-by-pid-instead-of- пример/ MichaelEvanchik 5 лет назад 0
но на вашем месте я бы использовал perfmon, поэтому вам не нужно трогать реестр, но, похоже, это изменение реестра является распространенным явлением MichaelEvanchik 5 лет назад 0
Спасибо, Майкл. Изменения в реестре выглядят многообещающе - похоже, именно в этом и заключается проблема. Что я не понимаю, так это ваш комментарий «Я бы вместо этого использовал perfmon»? Я использую perfmon, и в этом проблема: perfmon перечисляет произвольный номер экземпляра, а не PID. Я что-то упускаю? MarkB 5 лет назад 0
я имею в виду внешний инструмент sysinternals (которым сейчас владеет Microsoft), я считаю, что это лучший инструмент для работы IMO, и никакие настройки реестра не потребовались бы. Я опубликую решение как ответ MichaelEvanchik 5 лет назад 0
Хорошо, я думаю, что я следую. Я предполагаю, что предположил, что приложение управления, известное как Performance Monitor и exe perfmon.exe, было одним и тем же, но, очевидно, нет? Я проверю это. Другое дело, что я хочу включить ведение журнала, который будет работать в течение нескольких дней и собирать данные. Не уверен, что это другое приложение поддерживает это. Но опять же, я проверю это. Спасибо! MarkB 5 лет назад 0
нет проблем, но если я ответил на ваш вопрос, пожалуйста, отметьте его, если он был правильным, если так .............. спасибо ................ MichaelEvanchik 5 лет назад 0

1 ответ на вопрос

1
MichaelEvanchik

Кажется, вы должны отредактировать реестр, чтобы выставить это (будьте осторожны)

Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК. Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance

  1. Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.
  2. Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance
  3. В меню «Правка» выберите «Создать», а затем - «Значение DWORD».
  4. Щелкните правой кнопкой мыши Новое значение № 1, нажмите Переименовать, а затем введите ProcessNameFormat, чтобы присвоить новое значение
  5. Щелкните правой кнопкой мыши ProcessNameFormat и выберите команду Изменить.
  6. В поле Значение данных введите одно из следующих значений и нажмите кнопку ОК:
  7. 1: отключение данных PID. Это значение является значением по умолчанию.
  8. 2: включает данные PID.
  9. Выход из редактора реестра.

Это решает проблему, с которой вы столкнулись в формате w3wp # 1, w3wp # 2, w3wp # 3

и теперь будет в формате

Теперь у них будет PID в таком формате, как w3wp3865, w3wp2325, w3wp2154

и вы можете добавить счетчик производительности для того, что вы ищете явно, как вы спросили w3wp3865

https://blogs.technet.microsoft.com/askperf/2010/03/29/perfmon-identifying-processes-by-pid-instead-of-instance/

В качестве альтернативы, sysinternals perfmon.exe должен иметь возможность получать информацию о производительности (если не больше) без изменения реестра. Но я не уверен, что это именно то, что вам нужно.

Можете ли вы объяснить, как именно это отвечает на вопрос? Пожалуйста, не отвечайте в комментариях; [отредактируйте] ваш ответ, чтобы сделать его более понятным и полным. Scott 5 лет назад 0

Похожие вопросы