Мониторинг загрузки ЦП страниц ASP.net

У меня возникли проблемы с производительностью веб-приложения. Загрузка ЦП этого пула приложений может превышать 90%. Нормальное использование, которое я заметил, составляет 30%.

Я использовал инструмент Debug Diagnostic для мониторинга использования CPU этим приложением и выяснил, что проблема заключается в SNIReadSyncOverAsync. У меня нет никаких других подробностей о том, какая функция в моем приложении или странице стоит за вызовом SNIReadSyncOverAsync. Что мне нужно знать, так это то, какая страница потребляет больше всего ресурсов процессора в моем приложении.

Есть ли у вас идеи, как я могу контролировать производительность каждой страницы?

2 ответа

Я думаю, что вы также можете использовать perfmon(монитор производительности). Вы можете вызвать его из Пуск -> Выполнить -> Perfmon.exe. Вы можете настроить счетчики и посмотреть, на какой странице есть всплеск. для получения более подробной информации см. http://msdn.microsoft.com/en-us/library/aa645516(v=vs.71).aspx

Есть ли у вас идеи, как я могу контролировать производительность каждой страницы?

Да, есть способ узнать, что потребляет процессор в производственной среде, с помощью Windows Performance Recorder. Например,

На рассматриваемом сервере выполните приведенные ниже команды в командной строке.

wpr -start DotNET

Когда соответствующий код был выполнен, запустите

wpr -stop DotNET

Затем с помощью анализатора производительности Windows вы можете проанализировать файл ETL, созданный WPR. Смотрите Microsoft Channel9 для деталей.

Кроме того, вы также можете использовать PerfView для захвата запросов, которые занимают больше времени, чем ожидалось. Например,

perfview collect -StopOnRequestOverMsec:3000 -ThreadTime -Merge:true -Zip:true -LogFile:perfviewlog.log -CircularMB:512 -DataFile:LongRequest.etl

Затем проанализируйте информацию стека с помощью PerfView.

Другие вопросы по тегам