У меня проблема на одном веб-сервере (IIS6), где aspnet_wp использует 100% процессор. На этом сервере есть несколько сайтов. Но как узнать, какой веб-сайт вызывает проблему? Сайты находятся в среде 2.0, а сервер работает в режиме изоляции IIS5.
Для IIS6: в командной строке запустите cscript c:\windows\system32\iisapp.vbs
. Он будет сбрасывать PID для каждого пула приложений, чтобы вы могли отслеживать, какой из них привязан.
W3WP.exe PID: 12216 AppPoolId: A
W3WP.exe PID: 1632 AppPoolId: B
W3WP.exe PID: 8892 AppPoolId: C
Для IIS7: appcmd apppool /?
Я использовал SysInternals Process Explorer (теперь доступен с Веб-сайт Microsoft) для просмотра всех процессов, запущенных на сервере. Вы можете перейти к параметрам для просмотра определенных столбцов и включить командную строку, это должно показать вам имя пула приложений, запускающего веб-сайт.
Мы настраиваем индивидуальные пулы приложений для каждого сайта, таким образом, если один из них выйдет из строя, это не приведет к остановке всех сайтов. Вы можете изолировать каждый из своих сайтов в их собственных пулах приложений, а затем использовать этот инструмент, чтобы точно определить, какой из них вызывает проблему.
Поскольку вы используете режим изоляции IIS5, трудно сказать, какой сайт использует процессор. Вы не можете согласовать это с диспетчером задач.
iisstate и Debug Diag - два инструмента, которые могут вам помочь. Если вы можете выйти из режима изоляции IIS5, вы получите новый рабочий процесс (w3wp.exe) для каждого пула приложений, что значительно упростит его отслеживание. (и в IIS7 это снова намного проще)