22apr.rif2010 -bunin
-
Upload
mikhail-lomonosov -
Category
Education
-
view
272 -
download
0
Transcript of 22apr.rif2010 -bunin
Нагрузочное тестирование как способ снижения рисков
Олег Бунин
Зачем мы проводим нагрузочное тестирование?
Сложные системы
Сложность веб-системы
Электрический сигнал Сетевая карта
Операционная система, Сетевая подсистема
nginx
apache PHP
Операционная система, дисковая подсистема
Диск
ПамятьБаза данных
Как тестировать?• Нагрузка дается на систему в совокупности;• Нагрузка дается в течении длительного
времени;• Не говоря уже о профиле нагрузки.
Как мы даем нагрузку?
• Профиль нагрузки;• Имитация сессий пользователя;• Медленные клиенты.
Методология
• Описание аппаратной конфигурации;• Описание конфигураций веб-сервера;• Профиль нагрузки;
Пример тестирования 1С-Битрикс: Аппаратная часть
Операционная система CentOs, ядро 2.6.18
ПроцессорIntel(R) Core(TM)2 Duo CPU
E4500 2.20GHzОбъем оперативной памяти
2 Гб
Жесткий диск Western Digital WD2500YS 250GB
7200 RPM
Пример тестирования 1С-Битрикс: программная конфигурация
Nginx (версия 0.6.39), Apache (версия 2.2.3, Prefork), PHP (5.2.12), ZendServer CE
Параметры конфигурации Apache:– StartServers: 50– MinSpareServers: 50– MaxSpareServers: 50– MaxClients: 50– ServerLimit: 50– MaxRequestsPerChild: 100
Параметры конфигурации nginx:– worker_processes: 8– use epoll;– worker_connections: 10240
Параметры конфигурации MySQ::• thread_cache_size: 48• max_connections: 100
Параметры PHP• session.gc_maxlifetime: 300
Пример тестирования 1С-Битрикс: Профиль нагрузки
Каталог % от списка задач/ 0.51%/content/ 41.65%/e-store/ 23.28%/examples/ 14.1%/personal/ 3.18%/search/ 17.28%
Что должно быть в результате?• Оптимизация настроек;• Рефакторинг узких мест;• Данные о поведении системы под
нагрузкой;• Сенсационные цифры!
Процесс оптимизации и рефакторинга
Нагрузили
Посчитали
Прослезились
Внесли изменения
За нагружаемой системой наблюдают все: тестировщики,
администраторы и разработчики!
Кривая деградации• Как умирает система? Надо умирать
правильно!
Глупая бессмысленная смерть
1 2 3 4 5 6 7 8 9 10 110
10
20
30
40
50
60
70
Смерть героя!
1 2 3 4 5 6 7 8 9 10 110
10
20
30
40
50
60
70
Кривая деградации
Стандартные настройки Apache, MySQL и PostgreSQL вообще не предназначены для
серьезной работы
Как умирает Битрикс?
222 запроса в секунду
19 миллионов в сутки
10 30 50 70 90 110 130 150 170 190 2100
50
100
150
200
250
Как умирает Битрикс?
10 30 50 70 90 110 130 150 170 190 2100
50
100
150
200
250
Среднее время ответа – 2.5
секунды
Сенсационные цифры
Скорость обработки запросов (запросов в сек) 222,08
Количество ошибок 50x 0,77%
Запросов в день 19 187 712
Среднее время по больнице (сек) 2,538
Ожидание более 5 секунд 0,96%
Осмысленные цифры
Скорость обработки запросов (запросов в сек) 130
Количество ошибок 50x 0,4%
Запросов в день 11 232 000
Среднее время по больнице (сек) 0,44
Ожидание более 5 секунд 0,2%