Сложности и практики тестирования производительности

28
Сложности и практики тестирования производительности Владимир Вахлов, «Эксперт-система»

description

SQA Days 11. День 2. Cекция B Владимир ВахловDevexpertsСанкт-Петербург, Россия

Transcript of Сложности и практики тестирования производительности

Page 1: Сложности и практики тестирования производительности

Сложности и практики

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

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

Page 2: Сложности и практики тестирования производительности

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

• Терминология• Метрики• Площадки для тестирования• Моделирование нагрузки• Performance-drop анализ• Обработка данных

Page 3: Сложности и практики тестирования производительности

Терминология

Performance Testing (Тестирование

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

Load Stress Stability Configuration

Page 4: Сложности и практики тестирования производительности

Терминология

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

команды

Page 5: Сложности и практики тестирования производительности

Выбор метрик

• Наличие SLA• Конкуренция однотипных

систем• Реакция пользователей• Performance-drop анализ

Page 6: Сложности и практики тестирования производительности

Выбор метрик. Примеры

• Roundtrip обработки запроса• Время загрузки данных после входа

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

системы• Время, затраченное процессом на

GC

Page 7: Сложности и практики тестирования производительности

Оценка метрик

• Avg / Max / Min значения• Допустимое отклонение• Процентили

Page 8: Сложности и практики тестирования производительности

Оценка метрик.Avg / Max / Min значения

• Базовые метрики• Просты в подсчетах

• Не дают полного представления о поведении системы

Page 9: Сложности и практики тестирования производительности

Оценка метрик. Процентили

𝑛=𝑃100

(𝑁−1 )+1

𝑣 𝑃=𝑣𝑘+𝑑 (𝑣𝑘+1−𝑣𝑘)𝑛=𝑘+𝑑

𝑛=𝑃100

×𝑁 +12

80203540503045257015

15202530354045507080

𝑛=7 ,5𝑣 𝑃=50

𝑃=70Общий NIST (Excel 2007, …)

𝑛=7 ,3𝑣 𝑃=46,5𝑣 𝑃=45+0,3×(50−45)

Page 10: Сложности и практики тестирования производительности

Оценка метрик. Процентили (пример)

0:00

2:00

4:00

6:00

8:00

10:0

0

12:0

0

14:0

0

16:0

0

18:0

0

20:0

0

22:0

00

100

200

300

400

90% percentile 95% percentile 96% percentile97% percentile 98% percentile 99% percentile

Время

Отк

ли

к с

ист

ем

ы,

мс

• Устойчивость к пиковым значениям

• Гибкость

• Неизвестно количество и размер пиковых значений

Page 11: Сложности и практики тестирования производительности

Оценка метрик.Допустимое отклонение

  Кол-во Avg, мс Max, мс > 1 c > 2 с

Транзакция N (отклик

системы)

Версия 4 180652 26.7 1539857

(0.03%)31

(0.01%)

Версия 3 180334 28.78 17436361

(0.20%)298

(0.17%)

Версия 2 180057 32.23 14174367

(0.20%)306

(0.17%)

Версия 1 180339 31.17 14301423

(0.23%)358

(0.20%)

Page 12: Сложности и практики тестирования производительности

Оценка метрик.Допустимое отклонение

• Дает оценку пиковых значений

• Удобна на реальных системах

• Даёт гибкую систему оценки

Page 13: Сложности и практики тестирования производительности

Площадки для тестирования

Копия реальной площадки

Cloud-сервисы

Своё железо

Логическая копия

реальной конфигура

ции

Произвольная

конфигурация

Page 14: Сложности и практики тестирования производительности

Cloud-сервисыGoGrid

Amazon EC2Storm On DemandeApps

ElasticHostse24Cloud.com

OpSourceRackspaceTerremarkGigenetVPS NET

JoyentClouddediserve

• Гибкость• Конфигурируемость• Защищенность• Цена

Page 15: Сложности и практики тестирования производительности

Amazon EC2

• Виртуализация XEN• Собственный API• Spot-instances• Запуск новых серверов по щелчку мыши• Набор настроенных ОС

• Набор настроенного ПО

Red Hat Enterprise Linux

Windows Server Oracle Enterprise Linux

SUSE Linux Enterprise

Amazon Linux AMI Ubuntu Linux

Fedora Gentoo Linux Debian

IBM DB2 IBM WebSphere AS IBM Lotus ContentMgmt

Oracle 11g Java Application Server

Wowza Media Server Pro

MySQL Enterprise Oracle WebLogic Server

IIS/Asp.Net

Page 16: Сложности и практики тестирования производительности

Amazon EC2• От 1 до 16 ядер (1-88 EC2 Compute Units) – AMD /

Intel• До 68Gb RAM• Elastic Block Store (EBS) - RAID0

• 8 различных зонЛогин в систему

Зона Пинг до системы, мс

Отклик, мс (медиана)

Northern Virginia 1.8 1 647Northern California 85.6 3 998

Ireland 98.0 4 403Oregon 98.7 4 390

Sao Paulo 150.2 7 917Tokyo 188.0 7 255

Singapour 265.4 9 914

iostat: 16K blocks, 50/50 reads/writes, 50/50 random/seq access

Standard volume 300 iops / 4.7 MBpsEBS volume 870 iops / 13.5 MBps2 avg SATA drives in RAID1 220 iops / 3.5 MBps

Page 17: Сложности и практики тестирования производительности

Amazon EC2

© Steve Jobs

Page 18: Сложности и практики тестирования производительности

• Доступность 99.95%• Премиум-поддержка• Совместное

использование ресурсов

Amazon EC2Недостатки

Page 19: Сложности и практики тестирования производительности

Cloud-сервисы. No-Go

• Тестирование Ёмкости• Абсолютные величины

отклика• Экстраполяция

Page 20: Сложности и практики тестирования производительности

Cloud-сервисы. Применение

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

• Исследование архитектуры

• Сравнительные тесты

Page 21: Сложности и практики тестирования производительности

Исследование архитектуры.

Закон Амдала𝑆𝑘=

1

𝛼+1−𝛼𝑘

𝑆2=1

0,1+1−0,12

=1.8 𝑆4=3,07

𝑆8=4,70

«В случае, когда задача разделяется на несколько частей, суммарное время её выполнения на параллельной системе не может быть меньше времени выполнения самого длинного фрагмента».Пример: параллельно выполняется 90% кода

Page 22: Сложности и практики тестирования производительности

Исследование архитектуры

• Многопоточность• Кластеризация• Шардинг• Зависимость компонент

Page 23: Сложности и практики тестирования производительности

Performance-drop анализ

• Реализуем на любой платформе

• Отслеживает изменения в производительности в течение длительного времени

• Не зависит от конкретных метрик

Page 24: Сложности и практики тестирования производительности

• Реальный профиль• Комбинированный

профиль• Минимальный профиль

Моделирование нагрузки

Page 25: Сложности и практики тестирования производительности

Моделирование нагрузки

4 8 12 16 20 24 300

10

20

30

40

50

60

70

80

90

Процент запросов, превышающих допустимый предел

Количество запросов в секунду

Пр

оц

ен

т

Page 26: Сложности и практики тестирования производительности

Обработка данных

• Большое количество данных

• Визуализация• Рассчеты• Высокая степень

автоматизацииBash R-Project

MS Excel

gnuplot

Page 27: Сложности и практики тестирования производительности

R-Project

• Кроссплатформенность• Скриптование• Визуализация данных• Работает с миллионами строк

данных• Бесплатен ;-)

Page 28: Сложности и практики тестирования производительности

Вопросы?