Необходимо провести тест производительности сайта, чтобы выявить потенциально узкие места и наметить планы по их рефакторингу. Рассмотрим методологию тестирования.
Нагрузочное тестирование сайтов
View more presentations from QuartSoft/КвартСофт.
Тест производительности делится на 2 модуля:
- Нагрузочный (Load-testing) – определяется работоспособность системы при некоторой строго заданной заранее (планируемой, рабочей) нагрузке.
- Устойчивости (Stress-testing) – применяется для проверки параметров системы в анормальных и экстремальных условиях, основная задача во время этого теста - попытаться нарушить работу системы. При этом определяется потолок производительности и способность системы к сохранению целостности данных при возникновении внештатных аварийных ситуаций.
Предварительная подготовка
Для тестирования необходимо знать:- сколько посетителей планируется принимать в среднем, в пиковой нагрузке, время пиковой нагрузки;
- среднее количество страниц, просматриваемых одним пользователем, есть ли различия в поведении между зарегистрированными и анонимными пользователями, количественное соотношение между такими пользователями;
- наличие динамических страниц и страниц, изменяемых в течение определенного периода, и как часто это происходит;
- задействуется ли электронная почта, например, для подтверждения полномочий пользователя;
- какая еще дополнительная информация используется для проверки статуса пользователя (cookies);
- требуется ли подтверждение полномочий пользователя сторонней организацией или удаленным сервером (например, номер кредитной карточки), и будет ли представлена информация для тестирования;
- доступная пропускная способность канала, средняя его ширина для одного пользователя;
- может ли работа нескольких пользователей вызывать коллизию;
- используется ли защищенное HTTPS-соединение;
- используется ли кэширование страниц;
- плановые технические мероприятия, которые могут повлиять на работу сервера, и время их проведения (синхронизация, архивирование и пр.).
Этапы тестирования
1. Разработка моделей нагрузок и проектирование тестовых сценариев.2. Разработка и отладка тестовых скриптов.
3. Подготовка тестового набора базы данных.
4. Организация и проведение нагрузочных тестов.
5. Проведение анализа результатов тестирования.
Распределение тестирования
Для более правдоподобного тестирования может использоваться несколько компьютеров, находящихся в разных сегментах сети. При этом на одном компьютере (хосте) подготавливается задание и распределяется между компьютерами-клиентами, на каждом из которых запускается эмуляция деятельности определенного числа пользователей. Потом все результаты отправляются обратно на хост.Результаты, отчеты, графики
В процессе выполнения нагрузочного тестирования сайта собирается статистика и на ее основе формируется итоговый отчет о тестировании. В этот отчет обычно входят таблицы и графики:- время загрузки страницы
- время построения страницы
- загрузка процессора
- количество обработанных запросов в единицу времени и в общем
- зависимость количества отвергнутых запросов (ошибок) от их плотности
- распределение страниц по времени загрузки
и многие другие, которые можно построить на основе полученных данных
Заключение
Основываясь на полученных при тестировании результатах, разработчик и администратор смогут заранее выявить узкие места, возникающие из-за несбалансированной работы компонентов, и исправить ситуацию, перед тем как включать систему в реальную работу.Наиболее эффективными при тестировании высокопроизводительных серверов являются решения, основанные на применении распределенных систем. Рассмотренные системы различаются по сложности логики взаимодействия виртуальных пользователей с тестируемым сервером, поэтому при выборе инструмента для измерения производительности в первую очередь необходимо учитывать масштаб и структуру тестируемой системы, а также предварительно оценивать интенсивность нагрузки.
Комментариев нет:
Отправка комментария