♦ Многосерверная архитектура
82. Производительность
Производительность
В общем случае производительность определяется характеристиками каналов связи, объемами информации и программно-технологическими платформами
, используемыми как владельцем сайта, так и самими посетителями.Время генерации 90 % страниц сайта должно быть менее двух секунд, а оставшихся 10 % – менее пяти секунд
Из этих факторов самое критическое значение имеют параметры каналов связи и время генерации страницы сервером.
Время отклика
Пользователи судят о производительности сайта по времени его отклика на их действия (например, по скорости загрузки, времени отправки форм, динамике смены элементов интерфейса и т. д.). Отклик менее чем за 0,1 секунды воспринимается человеком как мгновенный.
Считается, что первая страница сайта должна загружаться не более 10 секунд. Замедленная скорость реагирования может стать причиной мгновенного ухода Клиента с сайта.
Модули анализа скорости генерации страниц и отдельных блоков встроены в некоторые системы управления контентом, например, в «1С-Битрикс. Управление сайтом».
Тестирование производительности
Для проверки производительности веб-сайта можно выбрать и провести один или несколько видов тестирования, например:
♦ Нагрузочное тестирование
♦ Стрессовое тестирование
Для проведения нагрузочного тестирования
веб-сайта используется специальное программное обеспечение, позволяющее создавать необходимую нагрузку на сервере и замерять контрольные параметры. По итогам такого тестирования выполняется анализ результатов, выявляются «узкие места» и принимаются меры к увеличению производительности, если это необходимо.Проведение тестирований, как правило, берет на себя разработчик веб-сайта
При стрессовом тестировании
проверяется способность системы справляться с нагрузками, существенно превышающими плановые. Например, подобные ситуации могут возникать в интернет-магазинах в предпраздничные дни, быть результатом очень удачной рекламной кампании.Инструменты для тестирования
Для тестирования производительности используются специализированное программное обеспечение. К числу таких приложений относится, например, свободно распространяемый пакет программ Microsoft® Web Application Stress (WAS), доступный для загрузки с сайта www.microsoft.com.
Также могут использоваться такие пакеты, как SPECweb99, WebBench, WebStone, TPC-W, OpenSTA, PureLoad, Apache JMeter, LoadRunner, QALoad и др.
Пакет Microsoft® Web Application Stress (WAS), доступен для загрузки с сайта microsoft.com
Важно, чтобы тестирование проводилось в условиях, максимально приближенных к реальным условиям эксплуатации веб-системы (или, как часто говорят, «в боевых условиях»).
Как увеличить производительность
Методы увеличения производительности зависят от выявленных в ходе тестирования «узких мест». Для их ликвидации можно использовать следующие методы:
♦ Увеличение производительности аппаратной платформы (в «узких местах»).
Применимо для всех архитектур. Либо в сервере(-ах) меняются компоненты на более производительные, либо целый(-е) сервер(-ы) меняется на другой(-ие), более мощный(-ые). Производительность системы увеличивается пропорционально увеличению производительности сервера(-ов)♦ Использование технологий кэширования
. Применимо для большинства архитектур. Ресурсоемкие запросы выполняются однократно, сохраняя результат обращения в статическом виде в оперативно доступном хранилище (обычно файлы на диске или оперативная память), и далее в течение установленного периода времени на все аналогичные обращения данные мгновенно выводятся из этого оперативного хранилища, не нагружая повторно основную систему♦ Создание зеркал
. Для определенной аудитории (например «все иностранцы») часто создается специальная копия веб-сайта по другому адресу, синхронизирующаяся с основной версией. При этом в рекламных материалах для этой аудитории используется доменное имя зеркальной копии