Почему тормозит 1С-Битрикс: 7 причин

У сервера восемь ядер, десятки гигабайтов памяти и быстрый тариф, но каталог открывается несколько секунд, корзина зависает, а во время обмена с 1С сайт почти перестаёт отвечать. Знакомо? Мощность сама по себе не гарантирует скорость. Производительность зависит от базы данных, PHP, кеширования, фоновых задач, диска и интеграций. Поэтому важны не только характеристики, но и правильная настройка VPS-сервера для 1С-Битрикс под конкретный проект.

Короткий ответ: 1С-Битрикс чаще всего тормозит не из-за нехватки мощности, а из-за конкретного узкого места: MySQL, PHP-FPM, кеша, фоновой задачи, диска или внешнего API. Поэтому сначала нужна диагностика, и только затем — увеличение ресурсов.

Почему тормозит 1С-Битрикс: 7 причин

Почему дополнительные ядра могут не помочь

Страница собирается поэтапно. 1С-Битрикс обращается к MySQL, выполняет PHP-код, читает файлы, получает данные из кеша и иногда ждёт 1С, CRM, службу доставки или платёжную систему.

Если один этап работает медленно, остальные ресурсы простаивают. Тяжёлый запрос к базе часто плохо распараллеливается, поэтому новые ядра не обязательно ускорят его. При задержке внешнего API сервер просто ждёт ответ, хотя процессор и память почти свободны. Поэтому средняя загрузка CPU в 20% ещё не доказывает, что сайт работает нормально.

1. MySQL медленно обрабатывает запросы

В базе накапливаются товары, свойства, заказы, остатки и служебные данные. Неоптимальный запрос или отсутствие индекса заставляет MySQL просматривать сотни тысяч строк. В результате карточка товара загружается несколько секунд, хотя сервер почти не занят.

Проверять нужно журнал медленных запросов, планы выполнения, индексы и настройки памяти MySQL.

2. Запросы стоят в очереди PHP-FPM

Один процесс PHP-FPM обычно обрабатывает один запрос за раз. Если свободных процессов нет, посетитель ждёт. Слишком маленький пул создаёт очередь, а слишком большой расходует память и заставляет сервер использовать swap.

Количество процессов рассчитывают с учётом их реального потребления памяти и пиковой посещаемости.

3. Кеш не работает или сбрасывается

Без кеша 1С-Битрикс заново формирует меню, фильтры и другие повторяющиеся блоки при каждом открытии страницы. Но просто включить кеширование недостаточно. Его может постоянно сбрасывать импорт каталога, некорректный компонент или доработка.

Нужно проверить кеш компонентов, управляемый кеш, композитный режим и причины инвалидации. Если после каждого импорта очищается весь кеш, сначала следует исправить логику сброса.

4. Агенты запускаются во время визита

Агенты отправляют письма, обновляют данные и выполняют другие регулярные операции. Если они запускаются при обращении к сайту, случайный посетитель ждёт завершения фоновой задачи.

Тяжёлые операции лучше переносить на cron и разводить по времени. Если резервное копирование, переиндексация и импорт стартуют одновременно, они конкурируют за процессор, память, диск и базу данных.

5. Доработка выполняет лишние операции

Причиной торможения может быть фильтр, расчёт скидок, модуль интеграции, шаблон или обработчик события. Особенно опасны запросы внутри циклов. Если шаблон отдельно получает данные для каждого из 100 товаров, одна страница создаёт сотни обращений к базе.

Более мощный сервер только маскирует такой дефект. Найти его помогают профилирование PHP-кода и анализ запросов конкретной страницы.

6. Диск не справляется с нагрузкой

1С-Битрикс читает файлы, записывает кеш и работает с базой. Если хранилище имеет высокую задержку, сайт тормозит даже при свободном CPU. Маркировка SSD или NVMe сама по себе не гарантирует скорость: важны фактические задержки, IOPS и iowait.

Проблема особенно заметна во время резервного копирования, импорта или обработки изображений. Важны только реальные измерения.

7. Сайт ждёт 1С или внешний сервис

Обмен с 1С обновляет товары, цены и остатки, создавая нагрузку на MySQL. Если он идёт одновременно с пользовательским трафиком, импорт и посетители конкурируют за ресурсы.

Другой сценарий — синхронное обращение к CRM, службе доставки или платёжной системе. Если внешний API отвечает пять секунд, корзина не откроется раньше, даже когда сам сайт подготовил данные за 300 миллисекунд. Такие интеграции стоит выносить в фоновые задания, ограничивать по времени ожидания и отделять от пользовательского трафика.

Что проверить до увеличения мощности

  • время ответа и генерации страницы;
  • CPU, память и очередь PHP-FPM;
  • медленные запросы MySQL;
  • задержки диска и iowait;
  • работу кеша и причины его сброса;
  • расписание агентов, импорта и резервного копирования;
  • время ответа внешних API;
  • модули и доработки с помощью профилировщика.

Если генерация страницы занимает три секунды, сначала нужно понять, на что они уходят: PHP-код, MySQL, диск или внешний сервис. Покупка дополнительных ядер без такого измерения — решение вслепую.

Как Maxiplace находит узкое место

Команда Maxiplace рассматривает 1С-Битрикс и сервер как единую систему. Инженеры проверяют PHP-FPM, MySQL, кеш, cron, диск и нагрузку во время обмена с 1С. Так становится понятно, требуется ли настройка окружения, оптимизация кода, изменение расписания задач или увеличение ресурсов.

Мощный сервер не гарантирует быстрый сайт. Правильная последовательность — измерить каждый этап, устранить узкое место и только затем масштабировать инфраструктуру. Это дешевле и надёжнее постоянного перехода на более дорогие тарифы.