Нагрузочное тестирование «1С-Битрикс»: методика проведения, специфика, как провести самим? Партнерская конференция «1С-Битрикс»

advertisement
Партнерская конференция «1С-Битрикс»
Нагрузочное тестирование «1С-Битрикс»: методика
проведения, специфика, как провести самим?
Евгений Потапов
ITSumma
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
О себе
Евгений Потапов
генеральный директор
компании ITSumma
Круглоcуточное удаленное
администрирование серверов и
техническая поддержка сайтов
100 миллионов уникальных
посетителей в сутки
Штат – 50 человек
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
О нас
На поддержке:
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Содержание
• Цели и задачи тестирования
• Виды нагрузочных тестирований
• Чем тестировать - инструментарий
• Проведение теста «коробки» - архитектура, сценарии, проблемы
• Результаты тестирования
• Куда стремиться дальше?
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Цели и задачи тестирования
1. Проверить максимальную производительность магазина со 100 000 SKU
на стандартном оборудовании
Типичные вопросы в разработке и эксплуатации:
• «Сколько посетителей может выдержать мой сервер? Я могу купить
больше рекламы»?
• «Мы сейчас выдерживаем 100 запросов в секунду – это много или
мало»?
• «Мне наш сисадмин говорит что можно выдерживать 500
одновременных соединений на нашем сервере»
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Цели и задачи тестирования
2. Проверить масштабируемость от 1 до 4 серверов
• «Если мы возьмем второй сервер - мы сможем выдерживать
нагрузку в два раза больше»?
• «Мы можем добавлять новые серверы до бесконечности»?
• «Вообще – кластер это эффективно?»
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Цели и задачи тестирования
3. Получить 3 результата нагрузочного тестирования – для 1, 2 и 4-х
серверной конфигурации
• Максимальное среднее число запросов в секунду в течение 24 часов
• Максимальное число просмотров страниц в течение 24 часов
• Максимальное число совершенных заказов в течение 24 часов
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Цели и задачи тестирования
4. Подбор оптимальной конфигурации ПО и рекомендации по эксплуатации
высоконагруженных проектов
• Оптимальная конфигурация серверного ПО
• Тестирование эффективности и оптимизация схемы БД
• Предложения для оптимизации 1С-Битрикс: Виртуальная машина и
1С-Битрикс: Веб-окружение
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Как тестировать? Виды
нагрузочного тестирования
Закрытая и открытая модель нагрузочного тестирования
• Закрытая модель – постоянная искусственная статическая нагрузка
– «пользователи» идут равномерно, нагрузка со временем не
меняется. Цель – понять максимальную производительность.
• Открытая модель – «пользователи» приходят волнами, иногда – с
нагрузкой выше чем может справиться сервер. Цель – понять
поведение в критических ситуациях в реальном мире.
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Виды нагрузочного
тестирования
Параметры тестирования
• Закрытая модель (нужна максимальная эталонная
производительность)
• Тестирование длиной 24 часа
• 100 000 SKU
• Конфигурация: 1С-Битрикс: Управление сайтом – 1 сервер, 1СБитрикс: Enterprise – 2 сервера, 1С-Битрикс: Enterprise – 4 сервера
• Выполнение SLA
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Виды нагрузочного
тестирования
Параметры тестирования - SLA
• 99% динамических запросов должны быть выполнены быстрее
1000мс
• Число ответов не-HTTP-200 должно быть не более 0.5%
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Инструментарий
• Яндекс.Танк (https://tech.yandex.ru/tank/ )
• JMeter (http://jmeter.apache.org/ )
• Серверы в Selectel - Intel Xeon E3-1270v3 3.5 ГГц, 32 ГБ, 2 × 240 ГБ
SSD - 8800 р. (отдельный сервер под танк)
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Сценарии тестирования
• 60% - просмотр каталога
• 37% - умный фильтр, выбор товара
• 3% - добавление товара в корзину и оформление заказа
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Аппаратное обеспечение и
конфигурация
• Intel Xeon E3-1270v3 3.5 ГГц, 32 ГБ оперативной памяти, 2 × 240 ГБ
SSD диски в software RAID 1
• 1 сервер – «источник атаки» с Яндекс.Танком
• Серверы с 1С-Битрикс: 1С-Битрикс: Веб-окружение + PHP 5.6
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Аппаратное обеспечение и
конфигурация
Конфигурация из 1 сервера
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Аппаратное обеспечение и
конфигурация
Конфигурация из 2 и 4 серверов
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование — этапы
• Первый этап – «примерочная стрельба»
• Второй этап – первые запуски полноценных тестов, тюнинг, грабли
• Третий этап – стабильные тесты, фиксация результатов
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – «примерочная
стрельба»
• Проверка конфигурации системы тестирования
• Исправление ошибок конфигурации, сценариев
• Подбор параметров для максимальной нагрузки при заданном SLA
• Первый тюнинг системы
• Фиксация параметров при заданном SLA
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – «примерочная
стрельба»
• Односерверная конфигурация: 34 потока
• Конфигурация из двух серверов: 74 потока
• Конфигурация из четырех серверов: 136 потоков
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – первые
полноценные запуски - грабли
Первый большой «прогон» - обязательно будут не очень хорошие результаты
• Проблемы с конфигурацией сервера
• Проблемы с конфигурацией сайта
• Неоптимальные решения в конфигурации сайта
• Проблемы с системой тестирования
Первые запуски – инструкция к оптимизации
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – первые
полноценные запуски - грабли
Все изменения конфигурации и оптимизации должны фиксироваться
• Изменения в конфигурационных файлах
• Изменения в настройках системы/сайта
• Одно изменение за раз
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – первые
полноценные запуски - грабли
Тестирование длиной в 24 часа – постоянный контроль
• Мониторинг серверов под нагрузкой (хватает места, отвечает сайт)
• Мониторинг сервера с системой тестирования
• “Ручной контроль”
• Слишком хорошие результаты – чаще всего – что-то не работает
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – первые
полноценные запуски - грабли
Бюрократия
• Сохранение конфигураций тестирования
• Сохранение «сырых» результатов тестирования
• Сохранение всех конфигураций, БД и кода
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 1 сервер (1С-Битрикс: Управление
Сайтом, редакция Бизнес)
• Время выполнения теста: 86892 секунд
• Число PHP запросов в секунду: 167, при 34 одновременных потоках
• 99-процентиль: 0,366мс.
• Число просмотренных страниц: 14 421 563
• Процент невыполненных запросов: 0.31%
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 1 сервер
99-процентиль
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 1 сервер
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 2 сервера (1С-Битрикс: Enterprise).
• Время выполнения теста: 86850 секунд
• Число PHP запросов в секунду: 265, при 74 одновременных потоках
• 99-процентиль: 0,950мс
• Число просмотренных страниц 23 082 301
• Процент невыполненных запросов: 0.47%
• Коэффициент масштабирования по сравнению с конфигурацией 1:
1.60
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 2 сервера
99-процентиль
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 2 сервера
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 4 сервера (1С-Битрикс: Enterprise).
• Время выполнения теста: 86402 секунд
• Число PHP запросов в секунду: 535, при 136 одновременных
потоках
• 99-процентиль: 0,900мс
• Число просмотренных страниц: 46 256 141
• Процент невыполненных запросов: 0.47%
• Коэффициент масштабирования по сравнению с конфигурацией 2 2.00
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 4 сервера
99-процентиль
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – результаты
Результаты тестирования – 4 сервера
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Тестирование – итоги и планы
• Есть «эталон» и метрики
• Есть понимание перспектив масштабирования
• Хочется: тест в открытой модели – понять поведение системы в
критических условиях, восстановление после сверхвысокой
нагрузки
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Информация о тестировании
• Тестирование проводилось в мае 2015 г.
• Информация о результатах теста: http://www.1cbitrix.ru/products/cms/performance/#tab-test-link
• Подробный отчет - http://www.1c-
bitrix.ru/download/manuals/ru/1cbitrix_tests_2015.pdf
| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Контакты
Евгений Потапов
http://itsumma.ru
eapotapov@itsumma.ru
http://facebook.com/eapotapov
Download