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

Post on 12-Jun-2015

624 views 0 download

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

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

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

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

Методология

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

Ресурсы

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

Нагрузочное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 систем упрощает и делает подход актуальным уже сегодня.

Вопросы?