Как я могу диагностировать IIS, заставляя процессор загружаться на 100%? - PullRequest
4 голосов
/ 16 ноября 2010

У меня есть веб-сервер, на котором запущено несколько сайтов ASP.NET.Время от времени я замечаю, что IIS увеличивает нагрузку на процессор сервера до 100%.Сайты имеют общие пулы приложений для каждой версии .NET, в которой они работают.

То, что я ищу, - это способ определить, какой именно сайт это делает, с помощью какого-либо инструмента.Если бы этот инструмент попал в код, чтобы показать его, это тоже было бы неплохо.Если нет, я счастлив, просто зная, какой сайт вызывает проблему.

Я уже пробовал использовать ANTS.Однако с помощью ANTS вам необходимо знать, какой это сайт, а затем запустить его и ожидать в указанном веб-приложении, вызывающем сбой процессора.Не идеально идеально.

Есть опыт / идеи?

Ответы [ 4 ]

2 голосов
/ 16 ноября 2010

Проверьте средство диагностики отладки IIS http://support.microsoft.com/kb/919790,

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

2 голосов
/ 16 ноября 2010

Используйте диспетчер задач, чтобы получить PID процесса, который принимает весь процессор, а затем используйте ответы на этот вопрос , чтобы сопоставить PID с веб-сайтом.

0 голосов
/ 16 ноября 2010

Низкотехнологичный ответ:
+ Используйте диспетчер задач, чтобы определить загруженный рабочий процесс.
+ Используйте c: \ windows \ system32 \ issapp.vbs для определения имени пула приложений загруженного процесса (альтернативно, DebugDiag делает то же самое проще, если вы знакомы с этим инструментом. На вкладке Process есть заголовок столбца для имени пула приложений.)
+ Создавайте новые пулы приложений и разделяйте ваши приложения между ними, пока вы не сможете изолировать приложение, вызывающее проблему, в пул приложений.

Более технический ответ:
+ Используйте диспетчер задач, чтобы определить загружен рабочий процесс. Повесить свалку этот рабочий процесс с использованием DebugDiag или ADPlus -hang -p (часть Инструменты отладки для Windows, оба бесплатные загрузки от Microsoft)
+ DebugDiag может предварительно проанализировать зависание дамп для вас, и может просто дать вам все подсказки, которые вам нужны. Это среднее техническое решение, которое часто работает. Вы хотите посмотреть на вкладка процесса и щелкните правой кнопкой мыши на оскорбительный процесс. Выберите «Полный режим пользователя» Дамп "или что-то в этом роде. Найти созданный файл дампа в c: \ Program Файлы \ DebugDiag \ Logs \ Misc * .dmp и дважды щелкните по нему, чтобы увидеть предварительно анализа.
+ Если DebugDiag не дать вам достаточно подсказок, тогда WinDBG могу конечно сказать что тебе нужно знать, хотя это тайное и трудный инструмент даже для начала, намного меньше хозяина. (Это также целый много веселья. Я настоятельно рекомендую это, если вы администратор и часто задавали такие вопросы. )

0 голосов
/ 16 ноября 2010

В дополнение к (правильному) ответу Дэвида, после того как вы определили WS, о котором идет речь, VS2010 с инструментами для работы с командами имеет фантастический анализ производительности в меню «Анализ». Имея инструменты, вы сможете в кратчайшие сроки сузить свои проблемы до конкретных строк кода.

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

...