Рекомендации по повышению производительности ASP.NET
Автор:Eve Cole
Время обновления:2009-06-30 16:04:02
Организуйте практические рекомендации по логическому/физическому проектированию на основе веб-трансляции MSDN: используйте страницы логических трехуровневых моделей (.aspx) и пользовательские элементы управления (.ascs).
Повторно используемые типы (компоненты) размещаются в каталоге bin. Данные размещаются в базе данных SQL. Рекомендуется: проектирование для веб-фермы. Не предполагайте, что посетители всегда будут возвращаться на один и тот же сервер.
Рекомендации по состоянию сеанса веб-фермы: следует избегать использования одного и того же процесса (по возможности):
Синхронные вызовы веб-служб XML с использованием веб-служб XML посредством удаленных вызовов через DCOM:
Связь между приложениями в Интернете не должна использоваться для связи внутри приложений. Рекомендация: используйте ISA Server, если требуется зона безопасности DMZ:
Разрешить доступ только через ISA
Туннель ISA через DMZ к ASP.NET
Сократите количество рекомендаций по языку/коду переключения процесса, чтобы избежать использования позднего связывания.
<%@ Page Language = "VB" Explicit = "true" %> требует объявления всех типов переменных и по-прежнему допускает позднее связывание
<%@ Page Language = "VB" strict = "true" %>Запрещает использование любого позднего связывания
Рекомендуется как можно меньше использовать COM для взаимодействия с COM, а для использования данных управляемых компонентов рекомендуется хранить данные в SQL Server и выбирать соответствующий метод доступа к данным: OLEDB/SQL client/ODBC.
Разумно выбирайте DataSet и DataReader для управления состоянием доступа к данным и выбирайте подходящий способ хранения сеанса: Inproc/StateServer/database.
Используйте простые типы данных, чтобы избежать сохранения COM-объектов STA в сеансе. Если сеанс не нужен, отключите его: EnableSessionState = «false».
Если возможно, используйте атрибут только для чтения: EnableSessionState = «Только для чтения»
Если ViewState не нужен, отключите его, EnableViewState = false
Минимизируйте данные в ViewState. Просмотрите размер ViewState. Просмотрите исходный код вывода HTML или включите Trace.
Использование кэша кэша страниц Частичный кэш страниц
Кэш данных объекта кэша
Метод кэширования веб-службы для количественной оценки производительности Интернета: время отклика пропускной способности компьютера. Протестировано путем загрузки сервера. Использование нескольких клиентских компьютеров для загрузки бесплатного веб-приложения Microsoft. Стресс.
Протестируйте несколько сценариев для имитации сквозного обхода сайта. Проверьте производительность одной страницы. Значения, которые необходимо вычислить, Request/sex при разных нагрузках (100, 250, 500, 750, 1000 и т. д.). клиенты посещают одновременно)
Определяет максимальную нагрузку клиента в пределах допустимого времени ответа TTFB/TTLB. Критические счетчики производительности. Процессор, % использования ЦП || Низкие значения = раскрытие или конфликт блокировок
ASP.NET, количество запросов в очереди || Линейный рост означает, что сервер полностью загружен
Приложение ASP.NET, количество запросов в секунду||Динамическая пропускная способность (должна быть постоянной)
Приложение ASP.NET, общее количество ошибок || Указывает функциональные ошибки (должно быть 0).
Приложение ASP.NET, перезапуск рабочего процесса || Указывает на серьезную функциональную ошибку