2009-02-10 5 views
2

Я был бы признателен за любые рекомендации относительно инструментов и практик, которые я мог бы использовать, чтобы подтвердить, что мой недавно завершенный сайт работает правильно.Как определить проблемы производительности и параллелизма на веб-сайте ASP.NET/IIS/SQL Server

Хотя я уверен, что код не создает ошибок и функционально работает как следует, я мало разбираюсь в том, как идентифицировать проблемы IIS, SQL Server и Windows/параллелизма. Например, если на сайт был нанесен крайнюю поток трафика, как бы я знал, что это когда-либо происходило, и как я узнаю, справился ли он с этим сайтом.

Сайт написан с использованием ASP.NET 2.0 и C#, работающие на Windows 2003 R2 Standard Edition, SQL Server 2005 Workgroup Edition и IIS 6.

ответ

1

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

Что касается инструментов и практик, я рекомендую badboy и jmeter как инструменты для загрузки вашего сайта. Badboy прост и может генерировать URL-адреса, которые также могут использоваться в jmeter. Последний делает очень хорошую нагрузку, проверяя ваш сайт. Выполняйте тесты, которые выполняются в течение длительного периода времени, и используют различные аппаратные настройки, чтобы увидеть, как влияет на производительность добавление большего количества веб-серверов/приложений.

Кроме того, ознакомьтесь с PerfMon, инструментом, который позволяет отслеживать локальный или удаленный сервер Windows относительно степени конкуренции, загрузки процессора и т. Д.

+0

Cheers Marcus, очень полезно. –

1

Вы можете использовать генераторную нагрузки инструмент, как WebLoad для захвата и затем воспроизвести (с возможными изменениями в сценариях) взаимодействия с пользовательским интерфейсом вашего приложения с большим количеством потоков и соединений.

+0

Я изучу WebLoad. Благодарю. –

1

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

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

+0

Я считаю, что SQL Trace является частью SQL Server Profiler, который (довольно досадно) не включен в SQL Server 2005 Workgroup Edition. Помимо этого, хорошее предложение :) –

1

Для SQL Server использовать sys.dm_exec_requests DMV и проверить использование процессора, чтение, запись, блокирование и т.д. и т.п.

select blocking_session_id,wait_type,* 
from sys.dm_exec_requests 
+0

Хорошее предложение, большое спасибо. –