Нагрузочное тестирование сайта на 1С-Битрикс
Обновлено
1С-Битрикс — самая популярная CMS для интернет-магазинов в России, и у неё есть репутация «тяжёлой». На деле сайт на Битриксе может держать тысячи одновременных посетителей, если включены нужные механизмы кэширования и сервер настроен под нагрузку. Проверить, как обстоят дела у вашего сайта, можно нагрузочным тестом — без доступа к серверу и без программиста.
Монитор производительности и нагрузочный тест — не одно и то же
В админке Битрикса есть «Монитор производительности». Он полезен, но измеряет другое: насколько быстр сам сервер — процессор, диск, база — когда на сайте никого нет. Он не скажет, что будет, когда каталог одновременно откроют 500 человек.
Нагрузочный тест смотрит снаружи, глазами посетителей: открывает главную, каталог, карточки и поиск всё большим числом виртуальных посетителей и показывает, когда страницы начинают открываться медленно и появляются ошибки.
Почему сайт на Битриксе тормозит под нагрузкой
- Кэш компонентов выключен или сбрасывается. Тогда каждый заход в каталог — десятки запросов к базе. Бывает, что кэш выключили на время разработки и забыли включить.
- Не включён композитный сайт. Без него даже одинаковые для всех страницы собираются через PHP для каждого посетителя.
- Умный фильтр и поиск. Каждое сочетание фильтров — отдельный тяжёлый запрос, и кэшировать их почти бесполезно.
- Мало процессов PHP. На виртуальном хостинге их часто 5–10. Одновременно обрабатывается столько запросов, остальные ждут в очереди.
- Агенты на хитах. По умолчанию фоновые задачи (агенты) выполняются во время запросов посетителей и замедляют их. На нагруженном сайте их переводят на cron.
- Обмен с 1С в рабочее время. Выгрузка каталога сбрасывает кэш и нагружает базу как раз тогда, когда на сайте покупатели.
- Медленная база данных. MySQL с настройками по умолчанию и без нужных индексов на большом каталоге.
Как проверить сайт на Битриксе
- Подтвердите права на сайт. В НагрузкаПро это делается так же, как в Яндекс Вебмастере: DNS-записью, файлом в корне сайта или мета-тегом на главной. В Битриксе мета-тег проще всего добавить в шаблон сайта, файл — загрузить в корень через «Структуру сайта».
- Выберите ситуацию. «Небольшой наплыв» — обычный пик; «Распродажа» — резкий всплеск; «Найти предел» — нагрузка растёт, пока сайт не начнёт отказывать.
- Запустите тест в часы минимального трафика. Сценарий соберётся сам: главная, каталог, карточки, поиск.
- Посмотрите отчёт: сколько посетителей сайт держит уверенно, при какой нагрузке начались проблемы и на каких страницах.
Если сайт закрыт паролем (например, тестовая копия), доступ можно передать в настройках сайта — логин и пароль хранятся в зашифрованном виде.
Что включить и настроить
Кэширование
- Автокеширование компонентов — «Настройки → Настройки продукта → Автокеширование». Должно быть включено на рабочем сайте.
- Композитный сайт — «Настройки → Настройки продукта → Композитный сайт». Отдаёт страницы из кэша почти без участия PHP; динамические области (корзина, авторизация) подгружаются отдельно.
- Кэш в памяти — memcached или Redis вместо файлового кэша, если сервер позволяет.
Сервер
- Виртуальная машина Битрикса (BitrixVM / BitrixEnv) — готовое окружение с nginx, PHP и MySQL, настроенное под Битрикс. Хорошая отправная точка для VPS.
- nginx перед Apache или PHP-FPM, чтобы картинки, стили и скрипты отдавались без PHP.
- OPcache включён и ему хватает памяти — иначе PHP каждый раз заново разбирает файлы.
- Число процессов PHP-FPM подобрано под память сервера: слишком мало — очередь, слишком много — сервер уходит в подкачку.
Сайт
- Агенты — на cron, а не на хитах посетителей.
- Обмен с 1С — ночью или небольшими порциями.
- Тяжёлые компоненты («похожие товары», «с этим покупают») — с кэшем или на отложенной загрузке.
- Лишние модули и виджеты, которые грузятся на каждой странице, — отключены.
Как понять, что помогло
Меняйте по одной вещи и повторяйте тест с той же ситуацией: так видно, что именно дало эффект. В НагрузкаПро два прогона можно сравнить рядом — время ответа и предел нагрузки «до» и «после».
Частые вопросы
Чем отличается проверка в «Монитор производительности» Битрикса?
Монитор производительности оценивает сервер изнутри, без посетителей. Нагрузочный тест показывает, что увидит покупатель, когда на сайте одновременно сотни и тысячи человек.
Помогает ли композитный сайт под нагрузкой?
Да, для страниц, которые одинаковы для всех посетителей: главная, каталог, карточки. Корзину, личный кабинет и поиск композит не ускоряет.
Нужен ли отдельный сервер для Битрикса?
Для магазина с заметным трафиком — обычно да. На виртуальном хостинге число процессов PHP ограничено, и при наплыве посетители встают в очередь.
Ещё по теме
- Нагрузочное тестирование сайта: зачем, когда и как
Что это такое, какие бывают тесты, какие цифры смотреть и как провести первую проверку за 10 минут.
- Как проверить, выдержит ли интернет-магазин распродажу
Какие страницы магазина падают первыми, сколько посетителей закладывать на акцию и что сделать за неделю до неё.
- Как проверить, выдержит ли сайт на WordPress нагрузку
Сколько выдерживает WordPress, почему WooCommerce тормозит и какой кэш включить до рекламной кампании.