Компонентная среда разработки инструментария нагрузочного тестирования

Содержание

Слайд 2

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

Изучение поведения многопользовательской системы под нагрузкой
Цели:
Оценка характеристик производительности системы под нагрузкой
Поиск

Нагрузочное тестирование Изучение поведения многопользовательской системы под нагрузкой Цели: Оценка характеристик производительности
узких мест в системе
Планирование производительности
Средства
Моделирование нагрузки
Инструментарий генерации нагрузки и измерения показателей
Методы анализа результатов

Слайд 3

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

Существующие средства нагрузочного тестирования не обладают достаточной гибкостью и адаптивностью
Решение: создание платформы

Инструментарий Существующие средства нагрузочного тестирования не обладают достаточной гибкостью и адаптивностью Решение:
для разработки инструментария нагрузочного тестирования
Области применения
Нагрузочное и стресс тестирование с использованием нестандартных протоколов
Поддержка статистических методов в нагрузочном тестировании
Автоматизация нагрузочного тестирования
Поддержка continues integration process

Слайд 4

Типовая архитектура

Load injectors

Load

Control

Measurements

Input

Output

Monitoring

Типовая архитектура Load injectors Load Control Measurements Input Output Monitoring

Слайд 5

Области расширения

Компонентная среда (OSGi/Java)
Архитектура основанная на plug-ins
API, точки расширения

Области расширения Компонентная среда (OSGi/Java) Архитектура основанная на plug-ins API, точки расширения

Слайд 6

Сценарий

Симулирует поведение пользователей
Java классы
Сценарий
Транзакция (шаг)
Запрос
Иерархичность, модульность
Идентификация частей сценария
Генерация кода сценариев
Отладка (Eclipse)

Сценарий Симулирует поведение пользователей Java классы Сценарий Транзакция (шаг) Запрос Иерархичность, модульность

Слайд 7

Сценарий (пример)

public class Service1Scenario extends WebScenario {
Transaction1 transaction1 = new Transaction1();
Transaction2 transaction2

Сценарий (пример) public class Service1Scenario extends WebScenario { Transaction1 transaction1 = new
= new Transaction2();
public void run() {
runTransaction(transaction1);
sleep(1000);
runTransaction(transaction2);
}
}

public class Transaction1 extends WebTransaction {
Request1 request1 = new Request1();
public void run() {
runRequest(request1);
}
}

public class Request1 extends WebRequest {
public void run() {
HttpResponse response = null;
response =
getContext().
getClient().execute(url );
}
}

Слайд 8

Нагрузка

Request time

Virtual users

Think time

time

Request rate

...

Virtual users

SUT

λ

µ

Нагрузка это частота обращений к системе
Определяется через
количество

Нагрузка Request time Virtual users Think time time Request rate ... Virtual
виртуальных пользователей И
среднее значение и распределение времени ответа

Слайд 9

Определение нагрузки (пример)

int maximumVirtualUsers = 15;
int incrementInterval = 60;
int

Определение нагрузки (пример) int maximumVirtualUsers = 15; int incrementInterval = 60; int
incrementVirtaulUsersBy = 1;
public IThinkTime getThinkTimeOnTime(long time) {
return new ConstantThinkTime(1000);
}
public int getVirtualUserNumberOnTime(long time) {
int vu = Math.min(
maximumVirtualUsers,
(int)((time/incrementInterval)+1)*incrementVirtaulUsersBy
);
return vu;
}

int Amplitude = 5; //virtual users
double Frequency = 1/60; //virtual users per second
int VerticalShift = 10; //oscillate around
public IThinkTime getThinkTimeOnTime(long time) {
return new ExponentialThinkTime(1000);
}
public int getVirtualUserNumberOnTime(long time) {
return (int)(VerticalShift + Amplitude*Math.sin(Frequency*time));
}

Слайд 10

Поддержка сетевых протоколов и измерений

Любой протокол, имеющий клиентcкие Java библиотеки
Регистрация значений:
Время

Поддержка сетевых протоколов и измерений Любой протокол, имеющий клиентcкие Java библиотеки Регистрация
исполнения
Ошибки протокола/приложения
Проткол-специфические измерения (размер пакета, время установления соединения, DNS время и т.п.)
Инструментирование библиотек протоколов
Поддержка протоколов интегрируется в базовые классы сценариев

Слайд 11

Run-time статистика и журналирование

Измерения собираются в статистики:
Среднее значение
Частота событий
Счетчики
Определенная пользователем
Масштабирование значений
Среднее

Run-time статистика и журналирование Измерения собираются в статистики: Среднее значение Частота событий
значение на разных масштабах времени
Расширяемый «движок» статистики
Filter/Pipe design pattern
Журналирование
Набор CSV файлов, Apache Derby
Формат определен протоколом

Слайд 12

Управление тестом

Пользовательский интерфейс
Eclipse RCP UI
Command line
Подготовка теста
Eclipse Java IDE, PDE
Рабочее окружение

Управление тестом Пользовательский интерфейс Eclipse RCP UI Command line Подготовка теста Eclipse
Eclipse
Исполнение теста и мониторинг
Графики статистики
Расширяемость
Eclipse plugin-ins
Chart API (JFree chart)
ANT tasks

Results export

Load test controller

Load test definition

Слайд 13

Компоненты платформы

Scenario

Workload

Statistics filters
definition

Network protocol
libraries

Log format definition

Test artifacts (OSGi bundles)

Remote deploy

Legend:

Platform

Компоненты платформы Scenario Workload Statistics filters definition Network protocol libraries Log format
Service

Deployable component

Слайд 14

Замечания по реализации
Высокая производительность агентов
Сложность точного измерения времени в Java (msec, nanosec)
Синхронизация

Замечания по реализации Высокая производительность агентов Сложность точного измерения времени в Java
потоков виртуальных пользователей
Синхронизация времени в распределенной среде
Интенсивный поток данных (измерений)
Сложность использование Java аннотаций и рефлексии

Слайд 15

Приложения платформы

Стандартное нагрузочное тестирование
HTTP, SOAP, RMI
Сложные сценарии
Различные протоколы в одном сценарии
Симуляция вероятностного

Приложения платформы Стандартное нагрузочное тестирование HTTP, SOAP, RMI Сложные сценарии Различные протоколы
поведения пользователя (СBMG)
Генерация кода сценариев (из трасс или моделей)
Нагрузочное тестирование и регулярная сборка
ANT task для определения и запуска теста

0.9

Слайд 16

Приложения платформы (2)

Генерация заданной нагрузки
Пуассоновский поток запросов
Автоуправление нагрузкой в зависимости от текущих

Приложения платформы (2) Генерация заданной нагрузки Пуассоновский поток запросов Автоуправление нагрузкой в
показателей производительности
Измерение среднего значения времени ответа с заданным доверительным интервалом
Автоматический поск максимальной пропускной способности системы (max TPS)
Симуляция пульсирующей нагрузки

Слайд 17

Максимальная пропускная способность системы

Load

Response time

Load

Throughput (TPS)

Average response time

Throughput (TPS)

Максимальная пропускная способность системы Load Response time Load Throughput (TPS) Average response time Throughput (TPS)

Слайд 18

Анализ результатов

Пакеты статистической обработки
S-Plus (R statistics)
Дисперсионный анализ
сравнение производительности альтернативных конфигураций

Анализ результатов Пакеты статистической обработки S-Plus (R statistics) Дисперсионный анализ сравнение производительности
системы
Корреляционный анализ
Вывод параметров аналитических моделей (очереди)
Построение моделей «черного ящика»

Слайд 19

Спасибо за внимание!

Спасибо за внимание!

Слайд 20

Backup slides

Backup slides

Слайд 21

Descriptive statistics example – KPI VS. load

Descriptive statistics example – KPI VS. load

Слайд 22

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

Application Server

Authentication Service

LDAP

Tickets Reservation Service

Доступно для тестирования под нагрузкой

Недоступно

Тестирование производительности распределенных систем Application Server Authentication Service LDAP Tickets Reservation Service
для тестирования под нагрузкой

Слайд 23

Approach overview

Perform load test and collect measurements
Windmill + dynamic workload
Determine response time

Approach overview Perform load test and collect measurements Windmill + dynamic workload
distribution
Statistical tests
Lognormal, Gamma, Weibull distributions
Fit response time distribution parameters
Non-parametric models (cubic splines)
Setup runtime simulator
Analytical or table representation of the model
Performance load test of a SUT

Слайд 24

Results comparison

Results comparison
Имя файла: Компонентная-среда-разработки-инструментария-нагрузочного-тестирования.pptx
Количество просмотров: 154
Количество скачиваний: 0