Мы протестировали новые возможности «1С-Битрикс: Энтерпрайз» для производительности и отказоустойчивости. Последняя версия справится по меньшей мере с 1,8 млн товаров, 100 регионами присутствия и постоянным обновлением цен.
Мы использовали серверную операционную систему Linux CentOS 7.1 с «1С-Битрикс: Виртуальная машина 7.1». Этот виртуальный сервер оптимизирован для работы с PHP-приложениями.
Основные серверы выбрали из стандартного списка IaaS-провайдера. Выбрали чуть выше среднего, чтобы показать результат на доступном оборудовании.
Для обработки нагрузки построили веб-кластер из четырёх серверов. Это базовая и недорогая конфигурация, которая подходит и по производительности и по отказоустойчивости.
Каждая нода веб-кластера включает сервер БД, сервер приложений и сервер кэширования. Схема с одним мастером и тремя слейвами СУБД.
Нагрузку на базу данных MySQL и серверы Memcached распределили с помощью стандартного модуля «Веб-кластер», а для балансировки между серверами использовали Nginx.
Для поиска по сайту развернули сервер Sphinx.
Сценарий тестирования
С методологией тестирования нам помогли партнёры из компании «Ленвендо». Их специализация — техническая поддержка высоконагруженных проектов.
Они проанализировали профили нагрузки крупных интернет-магазинов, в том числе нашего клиента «Евросеть», и мы разработали реальный сценарий поведения покупателей:
- 100 % — выбор региона, где 70 % — Москва, 30 % — случайный регион;
- 37,8 % — просмотр двух случайных карточек товара;
- 22,6 % — просмотр четырёх случайных карточек товара;
- 18,5 % — просмотр четырёх случайных разделов с постраничной навигацией;
- 10 % — просмотр двух случайных разделов с переходом к карточке товара;
- 5,6 % — два обращения к главной странице;
- 5 % — переход в случайный раздел и фильтрация товаров;
- 0,5 % — добавление в корзину и оформление заказа.
Для ещё большей реалистичности каждые полчаса обновляли 1 млн цен и остатков и сбрасывали кэш каталога. За сутки обновили цены 30% товаров.
Обновление цен приводило к трафику 25 Мбит/с, благодаря чему мы воссоздали периодическое устаревание кэша и нагрузку из-за синхронизации с внешними системами.
Кроме того, мы использовали технологию кэширования «Композитный сайт» для ускорения загрузки страниц. В результате на каждое обращение пользователя к странице выполнялись два хита. Первый хит получал из композитного кэша сохранённые данные, а второй обращался к PHP за обновлением динамических областей, которые не подлежат кэшированию.
Результат тестирования
«1С-Битрикс: Энтерпрайз 17» справлялся с 718 обращениями в секунду, и в 98% случаев на генерацию страниц уходило не более 0,4 секунды.
В сравнении с 2015 годом обработали на 30% больше обращений.
Трафик ровный, на уровне 400 Мбит/с, с периодическими пиками из-за обновления цен и синхронизации обновлений между серверами.
Источник: Компания «1С-Битрикс»
Комментарии (0)