Владимир Вахлов -- Тестирование производительности...

37
Тестирование производительности всерьёз Владимир Вахлов, «Эксперт-система»

Transcript of Владимир Вахлов -- Тестирование производительности...

Page 1: Владимир Вахлов -- Тестирование производительности всерьёз

Тестирование производительнос

ти всерьёзВладимир Вахлов,«Эксперт-система»

Page 2: Владимир Вахлов -- Тестирование производительности всерьёз

Производительность системЦель

Методология

Инструментарий

Ресурсы

Page 3: Владимир Вахлов -- Тестирование производительности всерьёз

Тестирование производительности

НагрузочноеLoad testing

СтрессStress-testing

СтабильностиStability / Soak / Endurance

testing

Конфигурационное

Configuration testing

Page 4: Владимир Вахлов -- Тестирование производительности всерьёз

Нагрузочное тестирование

Load testing• Цель: соответствие

требованиям• Ожидаемая или планируемая

нагрузка

• Пробное тестирование при отсутствии требований

Page 5: Владимир Вахлов -- Тестирование производительности всерьёз

Стресс-тестированиеStress-testing

• Цель: оценка вне рамок нормального использования

• Повышенная или непропорциональная нагрузка

• Основа Тестирования Ёмкости

Page 6: Владимир Вахлов -- Тестирование производительности всерьёз

Тестирование Ёмкости (стресс-тестирование)

Capacity testing

• Цель: максимальная нагрузка при соответствии требованиям

• Часть процесса Планирования Ёмкости

• Не путать с тестированием объема (volume testing)0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Page 7: Владимир Вахлов -- Тестирование производительности всерьёз

Тестирование стабильности

Stability / Soak / Endurance testing• Цель: оценка

производительности в течение длительного времени

• Ожидаемая или планируемая нагрузка

• Обнаруживает деградацию производительности во времени

Page 8: Владимир Вахлов -- Тестирование производительности всерьёз

Конфигурационное тестирование

Configuration testing• Цель: оптимальная конфигурация

системыКОНФИГУРАЦИЯ ОКРУЖЕНИЯ

программная

аппаратная

КОНФИГУРАЦИЯ

ПРИЛОЖЕНИЯ

программная

Page 9: Владимир Вахлов -- Тестирование производительности всерьёз

Подходы к тестированию

Пример (онлайн-магазин авиабилетов)

Сервер приложений

База данных

Веб-клиент

API

Page 10: Владимир Вахлов -- Тестирование производительности всерьёз

Необходимость регулярного тестирования

• Время ответа пользователю – ключевой показатель производительности

• Конкуренция на рынке• Соглашение об уровне

предоставления услуг (SLA)

Page 11: Владимир Вахлов -- Тестирование производительности всерьёз

Бизнес-вопрос

Сколько билетов может быть продано системой за 1 минуту?

Page 12: Владимир Вахлов -- Тестирование производительности всерьёз

Транзакционный подход

Концепция

Трактовка бизнес-вопроса:время обработки системой самой важной транзакции

(покупка билета)

Не должно превышать 2500 мс при 25 одновременных запросах

Page 13: Владимир Вахлов -- Тестирование производительности всерьёз

Транзакционный подход

Полученный результат

5 10 15 20 250

5001000150020002500

Зависимость среднего времени отклика системы от количества запросов

Количество одновременных запросов на бронирование

Врем

я о

ткли

ка,

мс

Page 14: Владимир Вахлов -- Тестирование производительности всерьёз

Транзакционный подход

Полученный результат

Сервер приложений

Поиск

Логин

Регистрация

Навигация

Оплата Покупка

База данных

Рассылка email

Рейсы

Page 15: Владимир Вахлов -- Тестирование производительности всерьёз

Транзакционный подход. Недостатки

• Не задействует всех внутренних механизмов системы

• Не проверяет работу системы в совокупности с другими транзакциями

Page 16: Владимир Вахлов -- Тестирование производительности всерьёз

Мультитранзакционный подход

Концепция

Трактовка бизнес-вопроса:время обработки системой

набора самых важных транзакций

Не должны превышать 2500 мс при 25 одновременных запросах каждого типа

Page 17: Владимир Вахлов -- Тестирование производительности всерьёз

Мультитранзакционный подход

Полученный результат

Логин Покупка Оплата Навигация Поиск0

1000

2000

3000

Время отклика системы на критические запросы

Тип запроса

Врем

я о

ткли

ка,

мс

Page 18: Владимир Вахлов -- Тестирование производительности всерьёз

Мультитранзакционный подход

Полученный результат

Сервер приложений

Поиск

Логин

Регистрация

Навигация

Оплата Покупка

База данных

Page 19: Владимир Вахлов -- Тестирование производительности всерьёз

Мультитранзакционный подход Недостатки

• Не учитывает взаимосвязи между транзакциями

• Не задействует последовательности и цепочки транзакций

Page 20: Владимир Вахлов -- Тестирование производительности всерьёз

Мультитранзакционный подход

Полученный результат

Поиск

ЛогинНавигация

Оплата Покупка

База данных

Обнуление сессийДобавление в кэш

Навигация

Проверка мильНавигация

Пересчет и оплатаДобавление карты

Навигация

Связь с банком

Page 21: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

Концепция

Трактовка бизнес-вопроса:сумеет ли система обработать N одновременно работающих с

ней пользователей?

...исходя из описанных требований ко времени обработки всех критических транзакций

Page 22: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

Концепция

• Задействует все критические транзакции, пропорции и побочные действия пользователя

• Стремится покрыть все механизмы системы, влияющие на производительность

Page 23: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

Концепция

?

Page 24: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

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

Page 25: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

Концепция

• Модель, основанная на средних

• Модель, основанная на максимумах

Page 26: Владимир Вахлов -- Тестирование производительности всерьёз

Модель, основанная на средних

Определяет соответствие системы требованиям

Не даёт понимания о работе системы при регулярных всплесках активности

Плохо обнаруживает узкие места

Page 27: Владимир Вахлов -- Тестирование производительности всерьёз

Модель, основанная на максимумах

Обнаруживает узкие места В случае провала не даёт

ответа о реальном соответствии требованиям

Предъявляет завышенные требования к системе на программном и аппаратном уровнях

Page 28: Владимир Вахлов -- Тестирование производительности всерьёз

Ориентация на конечного пользователя

• Модель, основанная на средних• Модель, основанная на

максимумах

Page 29: Владимир Вахлов -- Тестирование производительности всерьёз

Реалистичный подходКонцепция

Динамическая нагрузка!

Page 30: Владимир Вахлов -- Тестирование производительности всерьёз

Реалистичный подходКонцепция

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

Page 31: Владимир Вахлов -- Тестирование производительности всерьёз

Реалистичный подход

Критические транзакции Пропорциональность Типичные действия

пользователя Случайность действий

пользователя Обработка внешних событий Динамическая скорость

нагрузки Включение различных

интерфейсов

Page 32: Владимир Вахлов -- Тестирование производительности всерьёз

Реалистичный подход.Что необходимо?

• Framework• Аппаратные

мощности

Page 33: Владимир Вахлов -- Тестирование производительности всерьёз

Применение

Тестируемый серверЕдиное управление

Page 34: Владимир Вахлов -- Тестирование производительности всерьёз

Применение. Computing Cloud.

Тестируемый серверЕдиное управление

Page 35: Владимир Вахлов -- Тестирование производительности всерьёз

Эффективность

Нахождение максимального числа узких мест системы

Более прагматичное отношение к аппаратным ресурсам и оптимизации кода

Адекватная оценка перспектив системы

Page 36: Владимир Вахлов -- Тестирование производительности всерьёз

Итоги

• Реалистичный подход сложен, но максимально эффективен для мультипользовательских систем

• Наличие правильного инструментария дает возможность для гибкого тестирования системы

• Развитие Cloud Computing систем упрощает и делает подход актуальным уже сегодня.

Page 37: Владимир Вахлов -- Тестирование производительности всерьёз

Вопросы?