Я запускаю несколько счетчиков / отчетов perfmon на Windows Server 2003 IIS6 веб-сервер, на котором каждый веб-сайт работает под своим собственным пулом приложений / пользователем рабочего процесса.
В отчете приводятся названия сайтов, например:
w3wp#29
w3wp#30
w3wp#31
w3wp#32
Мне нужны имена рабочих процессов (или PID), чтобы я мог определить, к какому веб-сайту относится каждый.
Номера # 29, # 30, # 31 и т. Д. Не являются PID, потому что, когда я включаю представление PID в диспетчере задач, или если я включаю столбец `` Командная строка '' в Sysinternals Process Manager, или использую скрипт iisapp.vbs - PID - более длинные числа.
Мне не удалось найти ничего для преобразования вышеуказанных процессов в имя пользователя пула приложений или, по крайней мере, в PID, чтобы я мог перекрестно ссылаться на него с помощью сценария iisapp.vbs.
Я исследовал это и наткнулся на параметр реестра, который может делать то, что я ищу, но если нет другого способа, я не хочу вносить изменения в реестр:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance]
"ProcessNameFormat"=dword:00000002
Любые идеи о том, как искать или преобразовывать процессы w3wp # XX в имя пользователя пула приложений или PID?
Спасибо
Для перекрестной ссылки можно использовать счетчик процесса «ID процесса». Включите это в данные о производительности, и он покажет PID для процесса. Это нормально для одноразовой перекрестной ссылки, но это немного неудобно.
Я все же рекомендую изменить реестр, если вы можете это сделать. На мой взгляд, изменение реестра должно быть частью любой базовой сборки.
Вот сообщение в блоге, которое охватывает то же самое и подтверждает изменение реестра: http://weblogs.asp.net/owscott/archive/2007/03/19/registry-change-for-perfmon-and-pid-data.aspx
Старый удар, но вы можете использовать служебную программу sysinternals PROCEXP и добавить столбец «Командная строка», чтобы увидеть, какой пул работает в каком процессе w3wp.