Нагрузочное тестирование
Влад Алюков
2
Нагрузочное тестирование
Нагрузочное тестирование
3
SLA
4
Нервные пользователи
5
Цели
Поиск узких мест Оценка допустмых пределов Определение границ QoS
6
Стратегия
Проработка модели нагрузки Создание профилей нагрузки
Генерация нагрузки Мониторинг тестируемых систем
Анализ результатов
7
Профили нагрузки
8
Модель нагрузки
Список профилей нагрузки Интенсивность выполнения операции Зависимость интенсивности операций
от времени выполнения
9
Профиль нагрузки
Определение сценариев нагрузки Определение точек нагрузки Определение количества
пользователей
10
Точки нагрузки
Определение точек нагрузки Технические точки нагрузки Функциональные точки нагрузки
Определение интенсивности выполнения операций
11
Технические точки нагрузки
Работа с базой (модификация сущностей)
Задействуют несколько подсистем приложения
12
Функциональные точки нагрузки
Критический важные функции вашего приложения
Регистрация Логин Основные бизнес-кейсы
13
14
Анализ результатов
Метрики
Время отклика Количество ошибок Disk IO (tps, kb/t) RAM (memory use) CPU LA
15
LoadAverage
Количество процессов в очереди Временной интервал 1/5/15 минут
16
Время ответа
Стремится к нормальному распределению
С наименьшим среднеквадратичным отклонением
17
Типичные проблемы
Input/Output Недостаточно производительный
генератор нагрузки
18
19
Типичные ошибки
Прогрев
20
Среднее арифметическое
21
Только протоколы
22
Достойные инструменты
multi-mechanize locustio jmeter grinder tsung
23
24
Вопросы?
25
DevOps
26
Причины
27
Проблемы
«У меня всё работает» Конфликт интересов
разработчиков/операторов Отложенный фидбек
Идеология
28
29
We build, we run Configuration management Мониторинг
30
Практическая реализация
Автоматиазция Тестирование автоматизации
31
Автоматизация
Консистентность среды Известное состояние среды
32
Автоматизация
Автоматизируемые задачи Собрки (Continuous Integration)
Тестирование Deploy (Continuous Deployment)
Конфигурация Откат
33
CMS
Chef Puppet CFEngine Ansible SaltStack
34
Инфраструктура как код
Версионирование Масштабирование сред Управляемые изменения в тестовых и
производственных средах
35
Chef
Кукбук Атрибуты Ресурсы Рецепты Шаблоны Файлы
36
Knife
Управление состоянием chef server Интеграция с внешними API Управление кукбуками и их
репозитарием
37
Автоматизация
38
Автоматизация
Любая автоматизаия производимая непосредственно вами нуждается в тестировании
39
Тестирование конфигурации
Vagrant test-kitchen Serverspec Chefspec
40
Мониторинг
41
Мониторинг
Метрики Определяйте/Изучайте/Улучшайте
Поиск проблем Планирование нагрузки Анализ деградации/улучшения сервиса
Сокращая, таким образом, feedback loop
42
Мониторинг
Логи Logstash/graylog
Метрики Graphite/statsd
Системы мониторинга Nagios/Zabbiz Cucumber-nagios
43
Вопросы?