Организация нагрузочного тестирования — Алексей...
DESCRIPTION
Алексей Лавренюк расскажет об организации процесса нагрузочного тестирования: зачем нужно нагрузочное тестирование, на какие вопросы оно даст ответ, как снизить затраты временных и человеческих ресурсов на нагрузочное тестирование. Еще он коснется возможностей open-source инструмента Яндекс.Танк и его места в процессе нагрузочного тестирования.TRANSCRIPT
![Page 1: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/1.jpg)
![Page 2: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/2.jpg)
Организация нагрузочного тестирования
Алексей Лавренюк Я.Субботник Минск, 2014
![Page 3: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/3.jpg)
Нагрузочное тестирование?!
- это когда 50 человек зажимают F5 НЕТ!
- эмуляция нагрузки + измерение времен ответа и параметров работы системы
3
![Page 4: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/4.jpg)
Зачем проводить нагрузочное тестирование?
4
![Page 5: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/5.jpg)
Не хватило ресурсов
время
обсл
ужен
ные
клие
нты
(в д
ень)
макс. производительностьож
идае
мый рос
т
испорченная репутация
потери
![Page 6: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/6.jpg)
Быстрый интернет
В рекламе — «быстрый интернет», официальный сайт работает медленно
6
![Page 7: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/7.jpg)
Узкие места в архитектуре
- выбирали решение, основываясь на советах и рекламе
- получили низкую производительность именно в вашем случае
- потеряли время и ресурсы на переделку с нуля
7
…на ней правда можно возить сервера?
![Page 8: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/8.jpg)
Известный фреймворк
- выбрали известный фреймворк
- при передаче единственного числа добавлялась служебная информация
- ее размер на два порядка больше размера самого числа
8
упакуем для надежности
![Page 9: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/9.jpg)
Масштабируемость
- стало не хватать ресурсов
- добавили второй сервер
- производительность выросла, но незначительно
- потеряли ресурсы и время на глубокую переделку в авральном режиме
9
если что, добавим второй тоннель
whoops!
![Page 10: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/10.jpg)
Кривые масштабируемости
идеаль
ная масш
табируемост
ь
непараллельные части
затраты на коммуникацию
уровень параллелизма
прои
звод
ител
ьнос
ть
![Page 11: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/11.jpg)
Где грабли и что с ними делать?
нехватка ресурсов
узкие места в архитектуре
плохая масштабируемость
11
нагрузочное тестирование
![Page 12: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/12.jpg)
Идентификация рисков
определить предельную производительность
найти узкие места
оценить эффективность масштабирования
12
тактические боевые грабли
![Page 13: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/13.jpg)
Анализ рисков
причины медленной работы (как ускорить)
эффективная оптимизация (где ускорить)
эффективный апгрейд (а может, просто досыпать железа)
что делать, когда все плохо?
13
НТ знакомит вас с собственным сервисом
![Page 14: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/14.jpg)
Мониторинг рисков
следим за релизами (меняются программы)
следим за трендами (меняются данные)
14
![Page 15: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/15.jpg)
Задача нагрузочного тестирования
Управление рисками, связанными с производительностью:
идентификация
анализ
мониторинг
15
![Page 16: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/16.jpg)
Процесс нагрузочного тестирования
16
![Page 17: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/17.jpg)
Сбор информации
- анализ архитектуры: компоненты, протоколы, конфигурации
- анализ требований: нагрузка, времена ответа, загруженность ресурсов
17
![Page 18: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/18.jpg)
Подготовка инструментов
- тестовый стенд: машины, софт и мониторинг
- тестовые данные: базы данных и запросы
- генераторы нагрузки: машины и софт
18
![Page 19: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/19.jpg)
Тестирование
- запуск тестов
- оперативное исправление недостатков
- … снова запуск тестов
19
![Page 20: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/20.jpg)
Анализ результатов
Отчет:
- графики
- цифры
- выводы
20
![Page 21: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/21.jpg)
Графики
![Page 22: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/22.jpg)
Цифры
- максимальная производительность (число пользователей или операций в секунду)
- процентили времен ответа (в какое время укладывается 90% ответов)
- загруженность ресурсов
22
![Page 23: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/23.jpg)
Выводы
- удовлетворяем ли требованиям?
- возможность масштабирования
- узкие места и особенности работы
23
![Page 24: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/24.jpg)
Этапы нагрузочного тестирования
сбор информации
подготовка стенда и инструментов
тестирование
анализ результатов
автоматизация, если нужно
24
![Page 25: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/25.jpg)
Яндекс.Танк и его место в процессе нагрузочного тестирования
25
![Page 26: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/26.jpg)
Что такое Яндекс.Танк?
- не сервис, а open-source приложение
- не генератор, а удобная обертка над генераторами
26
![Page 27: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/27.jpg)
Функция танка
превратить описание стрельбы и тестовые данные в отчет путем проведения тестирования
load.ini
ammo report.html
![Page 28: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/28.jpg)
Проблемы, которые решает Танк
долго готовить генераторы — .deb пакет
долго обвешиваться мониторингами — мониторинг из коробки, мониторинг мишени по умолчанию
сложно запускать тесты — танк запускается из командной строки, можно автоматизировать
сложно конфигурировать — многоуровневая система конфигурации, удобные умолчания
сложно работать с результатами — отчет в формате .html с javascript-графиками
28
![Page 29: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/29.jpg)
Что мы обсудили?
НТ снижает риски, связанные с производительностью
этапы НТ:
- сбор информации
- подготовка инструментов и стенда
- тестирование
- анализ результатов
Яндекс.Танк — это кирпичик в модульной системе для автоматизации нагрузочных тестов
29
![Page 30: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/30.jpg)
Спасибо за внимание!
Алексей Лавренюк, Яндекс twitter: @direvius
![Page 31: Организация нагрузочного тестирования — Алексей Лавренюк](https://reader030.vdocuments.mx/reader030/viewer/2022012308/54b6fce24a79590a338b4574/html5/thumbnails/31.jpg)
Ссылки
https://github.com/yandex-load/yandex-tank — репозиторий Я.Танка
http://clubs.ya.ru/yandex-tank/ — клуб Я.Танка
31