Назад | Перейти на главную страницу

Aspnet_wp на 100% CPU, но какой сайт?

У меня проблема на одном веб-сервере (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 это снова намного проще)