Владимир Вахлов -- Тестирование производительности...
TRANSCRIPT
Тестирование производительнос
ти всерьёзВладимир Вахлов,«Эксперт-система»
Производительность системЦель
Методология
Инструментарий
Ресурсы
Тестирование производительности
НагрузочноеLoad testing
СтрессStress-testing
СтабильностиStability / Soak / Endurance
testing
Конфигурационное
Configuration testing
Нагрузочное тестирование
Load testing• Цель: соответствие
требованиям• Ожидаемая или планируемая
нагрузка
• Пробное тестирование при отсутствии требований
Стресс-тестированиеStress-testing
• Цель: оценка вне рамок нормального использования
• Повышенная или непропорциональная нагрузка
• Основа Тестирования Ёмкости
Тестирование Ёмкости (стресс-тестирование)
Capacity testing
• Цель: максимальная нагрузка при соответствии требованиям
• Часть процесса Планирования Ёмкости
• Не путать с тестированием объема (volume testing)0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Тестирование стабильности
Stability / Soak / Endurance testing• Цель: оценка
производительности в течение длительного времени
• Ожидаемая или планируемая нагрузка
• Обнаруживает деградацию производительности во времени
Конфигурационное тестирование
Configuration testing• Цель: оптимальная конфигурация
системыКОНФИГУРАЦИЯ ОКРУЖЕНИЯ
программная
аппаратная
КОНФИГУРАЦИЯ
ПРИЛОЖЕНИЯ
программная
Подходы к тестированию
Пример (онлайн-магазин авиабилетов)
Сервер приложений
База данных
Веб-клиент
API
Необходимость регулярного тестирования
• Время ответа пользователю – ключевой показатель производительности
• Конкуренция на рынке• Соглашение об уровне
предоставления услуг (SLA)
Бизнес-вопрос
Сколько билетов может быть продано системой за 1 минуту?
Транзакционный подход
Концепция
Трактовка бизнес-вопроса:время обработки системой самой важной транзакции
(покупка билета)
Не должно превышать 2500 мс при 25 одновременных запросах
Транзакционный подход
Полученный результат
5 10 15 20 250
5001000150020002500
Зависимость среднего времени отклика системы от количества запросов
Количество одновременных запросов на бронирование
Врем
я о
ткли
ка,
мс
Транзакционный подход
Полученный результат
Сервер приложений
Поиск
Логин
Регистрация
Навигация
Оплата Покупка
База данных
Рассылка email
Рейсы
Транзакционный подход. Недостатки
• Не задействует всех внутренних механизмов системы
• Не проверяет работу системы в совокупности с другими транзакциями
Мультитранзакционный подход
Концепция
Трактовка бизнес-вопроса:время обработки системой
набора самых важных транзакций
Не должны превышать 2500 мс при 25 одновременных запросах каждого типа
Мультитранзакционный подход
Полученный результат
Логин Покупка Оплата Навигация Поиск0
1000
2000
3000
Время отклика системы на критические запросы
Тип запроса
Врем
я о
ткли
ка,
мс
Мультитранзакционный подход
Полученный результат
Сервер приложений
Поиск
Логин
Регистрация
Навигация
Оплата Покупка
База данных
Мультитранзакционный подход Недостатки
• Не учитывает взаимосвязи между транзакциями
• Не задействует последовательности и цепочки транзакций
Мультитранзакционный подход
Полученный результат
Поиск
ЛогинНавигация
Оплата Покупка
База данных
Обнуление сессийДобавление в кэш
Навигация
Проверка мильНавигация
Пересчет и оплатаДобавление карты
Навигация
Связь с банком
Ориентация на конечного пользователя
Концепция
Трактовка бизнес-вопроса:сумеет ли система обработать N одновременно работающих с
ней пользователей?
...исходя из описанных требований ко времени обработки всех критических транзакций
Ориентация на конечного пользователя
Концепция
• Задействует все критические транзакции, пропорции и побочные действия пользователя
• Стремится покрыть все механизмы системы, влияющие на производительность
Ориентация на конечного пользователя
Концепция
?
Ориентация на конечного пользователя
0:0
01:0
02:0
03:0
04:0
05:0
06:0
07:0
08:0
09:0
010:0
011:0
012:0
013:0
014:0
015:0
016:0
017:0
018:0
019:0
020:0
021:0
022:0
023:0
0
0100200300400500600700800900
1,000Количество входящих в живую систему
запросов
Нагрузка на живой платформе
Время
Кол
ичество з
ап
росов т
ип
а
N
Ориентация на конечного пользователя
Концепция
• Модель, основанная на средних
• Модель, основанная на максимумах
Модель, основанная на средних
Определяет соответствие системы требованиям
Не даёт понимания о работе системы при регулярных всплесках активности
Плохо обнаруживает узкие места
Модель, основанная на максимумах
Обнаруживает узкие места В случае провала не даёт
ответа о реальном соответствии требованиям
Предъявляет завышенные требования к системе на программном и аппаратном уровнях
Ориентация на конечного пользователя
• Модель, основанная на средних• Модель, основанная на
максимумах
Реалистичный подходКонцепция
Динамическая нагрузка!
Реалистичный подходКонцепция
0:0
01:0
02:0
03:0
04:0
05:0
06:0
07:0
08:0
09:0
010:0
011:0
012:0
013:0
014:0
015:0
016:0
017:0
018:0
019:0
020:0
021:0
022:0
023:0
0
0200400600800
1,0001,2001,4001,6001,800
Количество входящих в систему запросов
Нагрузка на живой платформеМодель нагрузки для тестаМодель, линейно увеличенная вдвое
Кол
ичество з
ап
росов т
ип
а N
Реалистичный подход
Критические транзакции Пропорциональность Типичные действия
пользователя Случайность действий
пользователя Обработка внешних событий Динамическая скорость
нагрузки Включение различных
интерфейсов
Реалистичный подход.Что необходимо?
• Framework• Аппаратные
мощности
Применение
Тестируемый серверЕдиное управление
Применение. Computing Cloud.
Тестируемый серверЕдиное управление
Эффективность
Нахождение максимального числа узких мест системы
Более прагматичное отношение к аппаратным ресурсам и оптимизации кода
Адекватная оценка перспектив системы
Итоги
• Реалистичный подход сложен, но максимально эффективен для мультипользовательских систем
• Наличие правильного инструментария дает возможность для гибкого тестирования системы
• Развитие Cloud Computing систем упрощает и делает подход актуальным уже сегодня.
Вопросы?