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