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

«Поймать все» профилирование нагрузки на стороне сервера

Если у меня есть инфраструктура с некоторыми веб-серверами (Windows 2003 и IIS) и базой данных (SQL Server 2005) и ASP.net, мне интересно, есть ли универсальный инструмент, который просто позволяет мне сказать: «Хорошо, теперь я открываю эта страница, и вы мне точно расскажете, что происходит на ASP.net, IIS и SQL, CPU, RAM и жестком диске ».

Конечно, я могу добавить трассировку в свой ASP.net, а затем в свой SQL Server, а затем мне нужно посмотреть, как работать с IIS (например, изображения не проходят через ASP.net), но мне интересно, есть ли у кого-нибудь способ получить простой обзор практически всего? Желательно бесплатно, но если он хороший, то он может стоить денег.

Посмотрите на совместное использование трассировок SQL Server Profiler и монитора производительности Windows Server. SQL Server 2005 позволяет связать эти два файла вместе. В этой статье рассказывается, как это хорошо сделать.
В дополнение к этому, если вы используете название приложения = в строке подключения к SQL Server, вы можете зафиксировать это в трассировке Profiler и использовать его как способ передачи информации из вашего приложения asp.net/asp, например, какое имя файла выполняется.

Вы можете попробовать коммерческие инструменты, такие как BMC AppSight, или, если он основан только на .Net, AVICode. Если вы хотите сделать это дешево, комбинация журналов IIS и счетчиков Perfmon удовлетворит ваши потребности.

Монитор производительности Windows - довольно хороший выбор. Он будет встроен в качестве элемента управления ActiveX на веб-страницу, поэтому вы можете просто открыть его, и его счетчики могут отслеживать практически все аспекты сервера (при условии, что они могут быть представлены в числовом виде).

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

Счетчики, которые мы обычно запускаем для визуального ознакомления:

  • ASP.net \ Запуск приложений
  • ASP.net \ Время ожидания запросов
  • Процессор \% загруженности процессора
  • PhysicalDisk \ Avg. Длина дисковой очереди
  • Память \ Доступные МБ

Есть множество метрик на основе SQL (время ожидания, количество запросов в секунду, среднее время выполнения запроса и т. Д.), Которых у меня сейчас нет под рукой, но они довольно гибкие в отчетности. То же самое и с ASP.net - вы можете настроить отчет по отдельным приложениям или использовать счетчик _total для всех из них.

Хм. Я не знаком с одним инструментом, который даст вам все, но вы можете добиться этого с помощью комбинации инструментов.

Вы упомянули SQL Server, поэтому SQL Profiler - это то, на что вы должны обратить внимание, чтобы отслеживать все, что происходит в вашей базе данных.

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

ЦП, ОЗУ и жесткий диск можно контролировать с помощью perfmon.exe (встроенного в Windows) или Обозреватель процессов.