2013-09-04 2 views
2

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

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

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

+1

Используйте профилировщик? –

ответ

1

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

0

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

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

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

wpr -start DotNET 

Когда код в вопросе выполнил, запустить

wpr -stop DotNET 

Затем с помощью Windows Performance Analyzer , вы можете проанализировать ETL-файл, созданный WPR. Подробнее см. В Microsoft Channel9.

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

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

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