Нагрузочное тестирование 1С-Битрикс. методика...

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

Upload: itsumma

Post on 16-Apr-2017

199 views

Category:

Internet


3 download

TRANSCRIPT

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

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

Евгений ПотаповITSumma

Партнерская конференция «1С-Битрикс»

Page 2: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

О себе| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Евгений Потаповгенеральный директор компании ITSumma

Круглоcуточное удаленное администрирование серверов и техническая поддержка сайтов

100 миллионов уникальных посетителей в сутки

Штат – 50 человек

Page 3: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

О нас| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

На поддержке:

Page 4: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Содержание

• Цели и задачи тестирования

• Виды нагрузочных тестирований

• Чем тестировать - инструментарий

• Проведение теста «коробки» - архитектура, сценарии, проблемы

• Результаты тестирования

• Куда стремиться дальше?

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 5: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Цели и задачи тестирования

• «Сколько посетителей может выдержать мой сервер? Я могу

купить больше рекламы»?

• «Мы сейчас выдерживаем 100 запросов в секунду – это много или

мало»?

• «Мне наш сисадмин говорит что можно выдерживать 500

одновременных соединений на нашем сервере»

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Типичные вопросы в разработке и эксплуатации:

1. Проверить максимальную производительность магазина со 100 000 SKU на стандартном оборудовании

Page 6: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Цели и задачи тестирования

• «Если мы возьмем второй сервер - мы сможем выдерживать

нагрузку в два раза больше»?

• «Мы можем добавлять новые серверы до бесконечности»?

• «Вообще – кластер это эффективно?»

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

2. Проверить масштабируемость от 1 до 4 серверов

Page 7: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Цели и задачи тестирования

• Максимальное среднее число запросов в секунду в течение 24 часов

• Максимальное число просмотров страниц в течение 24 часов

• Максимальное число совершенных заказов в течение 24 часов

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

3. Получить 3 результата нагрузочного тестирования – для 1, 2 и 4-х серверной конфигурации

Page 8: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Цели и задачи тестирования| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

4. Подбор оптимальной конфигурации ПО и рекомендации по эксплуатации высоконагруженных проектов

• Оптимальная конфигурация серверного ПО

• Тестирование эффективности и оптимизация схемы БД

• Предложения для оптимизации 1С-Битрикс: Виртуальная машина и

1С-Битрикс: Веб-окружение

Page 9: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Как тестировать? Виды нагрузочного тестирования

• Закрытая модель – постоянная искусственная статическая нагрузка

– «пользователи» идут равномерно, нагрузка со временем не

меняется. Цель – понять максимальную производительность.

• Открытая модель – «пользователи» приходят волнами, иногда – с

нагрузкой выше чем может справиться сервер. Цель – понять

поведение в критических ситуациях в реальном мире.

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Закрытая и открытая модель нагрузочного тестирования

Page 10: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Виды нагрузочного тестирования

• Закрытая модель (нужна максимальная эталонная

производительность)

• Тестирование длиной 24 часа

• 100 000 SKU

• Конфигурация: 1С-Битрикс: Управление сайтом – 1 сервер, 1С-

Битрикс: Enterprise – 2 сервера, 1С-Битрикс: Enterprise – 4 сервера

• Выполнение SLA

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Параметры тестирования

Page 11: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Виды нагрузочного тестирования

• 99% динамических запросов должны быть выполнены быстрее

1000мс

• Число ответов не-HTTP-200 должно быть не более 0.5%

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Параметры тестирования - SLA

Page 12: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Инструментарий

• Яндекс.Танк (https://tech.yandex.ru/tank/ )

• JMeter (http://jmeter.apache.org/ )

• Серверы в Selectel - Intel Xeon E3-1270v3 3.5 ГГц, 32 ГБ, 2 × 240 ГБ

SSD - 8800 р. (отдельный сервер под танк)

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 13: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Сценарии тестирования

• 60% - просмотр каталога

• 37% - умный фильтр, выбор товара

• 3% - добавление товара в корзину и оформление заказа

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 14: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Аппаратное обеспечение и конфигурация

• Intel Xeon E3-1270v3 3.5 ГГц, 32 ГБ оперативной памяти, 2 × 240 ГБ

SSD диски в software RAID 1

• 1 сервер – «источник атаки» с Яндекс.Танком

• Серверы с 1С-Битрикс: 1С-Битрикс: Веб-окружение + PHP 5.6

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 15: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Аппаратное обеспечение и конфигурация

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Конфигурация из 1 сервера

Page 16: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Аппаратное обеспечение и конфигурация

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Конфигурация из 2 и 4 серверов

Page 17: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование — этапы

• Первый этап – «примерочная стрельба»

• Второй этап – первые запуски полноценных тестов, тюнинг, грабли

• Третий этап – стабильные тесты, фиксация результатов

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 18: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – «примерочная стрельба»

• Проверка конфигурации системы тестирования

• Исправление ошибок конфигурации, сценариев

• Подбор параметров для максимальной нагрузки при заданном SLA

• Первый тюнинг системы

• Фиксация параметров при заданном SLA

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 19: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – «примерочная стрельба»

• Односерверная конфигурация: 34 потока

• Конфигурация из двух серверов: 74 потока

• Конфигурация из четырех серверов: 136 потоков

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Page 20: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – первые полноценные запуски - грабли

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Первый большой «прогон» - обязательно будут не очень хорошие результаты

• Проблемы с конфигурацией сервера

• Проблемы с конфигурацией сайта

• Неоптимальные решения в конфигурации сайта

• Проблемы с системой тестирования

Первые запуски – инструкция к оптимизации

Page 21: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – первые полноценные запуски - грабли

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Все изменения конфигурации и оптимизации должны фиксироваться

• Изменения в конфигурационных файлах

• Изменения в настройках системы/сайта

• Одно изменение за раз

Page 22: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – первые полноценные запуски - грабли

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Тестирование длиной в 24 часа – постоянный контроль

• Мониторинг серверов под нагрузкой (хватает места, отвечает сайт)

• Мониторинг сервера с системой тестирования

• “Ручной контроль”

• Слишком хорошие результаты – чаще всего – что-то не работает

Page 23: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – первые полноценные запуски - грабли

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Бюрократия

• Сохранение конфигураций тестирования

• Сохранение «сырых» результатов тестирования

• Сохранение всех конфигураций, БД и кода

Page 24: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 1 сервер (1С-Битрикс: Управление Сайтом, редакция Бизнес)

• Время выполнения теста: 86892 секунд

• Число PHP запросов в секунду: 167, при 34 одновременных потоках

• 99-процентиль: 0,366мс.

• Число просмотренных страниц: 14 421 563

• Процент невыполненных запросов: 0.31%

Page 25: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 1 сервер

99-процентиль

Page 26: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 1 сервер

Page 27: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 2 сервера (1С-Битрикс: Enterprise).

• Время выполнения теста: 86850 секунд

• Число PHP запросов в секунду: 265, при 74 одновременных потоках

• 99-процентиль: 0,950мс

• Число просмотренных страниц 23 082 301

• Процент невыполненных запросов: 0.47%

• Коэффициент масштабирования по сравнению с конфигурацией 1:

1.60

Page 28: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 2 сервера

99-процентиль

Page 29: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 2 сервера

Page 30: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 4 сервера (1С-Битрикс: Enterprise).

• Время выполнения теста: 86402 секунд

• Число PHP запросов в секунду: 535, при 136 одновременных

потоках

• 99-процентиль: 0,900мс

• Число просмотренных страниц: 46 256 141

• Процент невыполненных запросов: 0.47%

• Коэффициент масштабирования по сравнению с конфигурацией 2 -

2.00

Page 31: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 4 сервера

99-процентиль

Page 32: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – результаты| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Результаты тестирования – 4 сервера

Page 33: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Тестирование – итоги и планы

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

• Есть «эталон» и метрики

• Есть понимание перспектив масштабирования

• Хочется: тест в открытой модели – понять поведение системы в

критических условиях, восстановление после сверхвысокой

нагрузки

Page 34: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

• Тестирование проводилось в мае 2015 г.

• Информация о результатах теста:

http://www.1c-bitrix.ru/products/cms/performance/#tab-test-link

• Подробный отчет -

http://www.1c-bitrix.ru/download/manuals/ru/1cbitrix_tests_2015.pdf

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ

Информация о тестировании

Page 35: Нагрузочное тестирование 1С-Битрикс. методика проведения, специфика, как провести самим

Контакты

Евгений Потапов

http://[email protected]

http://facebook.com/eapotapov

| ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ