VPS для 1С-Битрикс: конфигурация интернет-магазина Печать

  • 0

Для первого запуска небольшого интернет-магазина на 1С-Битрикс можно рассматривать VPS с 4 vCPU, 8 ГБ RAM и 80–120 ГБ NVMe, если в этот объём помещаются сайт, база, изображения и запас для обновлений. Это отправная точка для проверки, а не гарантия определённого количества посетителей. Сложный фильтр, торговые предложения, персональные цены и обмен с 1С могут изменить требования сильнее, чем размер каталога.

Речь ниже о продукте «1С-Битрикс: Управление сайтом»: веб-сервере, PHP и базе магазина. Сервер «1С:Предприятия», рабочие места бухгалтеров и коробочный Битрикс24 требуют отдельного расчёта.

Какую конфигурацию VPS выбрать для магазина

Если магазин уже работает, начните со статистики существующего сервера. Если статистики нет, используйте таблицу для выбора тестовой конфигурации. Диапазоны — практические ориентиры для планирования; официальные требования Битрикс не устанавливают соответствия «столько ядер на столько товаров».

Сценарий CPU и RAM Диск Что обязательно проверить
Небольшой магазин: стандартные компоненты, работающий кеш, умеренное число одновременных действий 4 vCPU, 8 ГБ RAM 80–120 ГБ NVMe, если хватает по расчёту данных Корзину, фильтр и обмен с 1С одновременно
Растущий магазин: активная реклама, много торговых предложений, несколько интеграций 4–8 vCPU, 12–16 ГБ RAM 160–240 ГБ NVMe или больше по объёму файлов Очередь запросов PHP, медленные SQL-запросы, пики во время импорта
Тяжёлый каталог, сложные цены и фильтры, частые обмены, интенсивная динамическая нагрузка 8–16 vCPU, 24–32 ГБ RAM как кандидат для нагрузочного теста От 240 ГБ NVMe; важны также задержки и ограничения дисковых операций Профиль запросов, устойчивость под длительной нагрузкой и необходимость разделения служб

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

Если некому обновлять ОС, контролировать резервные копии и разбирать сбои, включите администрирование в бюджет либо сравните VPS с управляемым хостингом под Битрикс. Доступ root даёт контроль над сервером, но требует обслуживания.

Что выяснить до заказа сервера

Для расчёта недостаточно написать «магазин на 20 тысяч товаров». Соберите данные, которые показывают характер нагрузки:

  • Товары и торговые предложения. Укажите число основных товаров и отдельно вариантов по размеру, цвету и другим свойствам. Добавьте количество складов, типов цен и свойств, участвующих в фильтре.
  • Размер данных. Нужны объём базы, файлов сайта, каталога /upload, кешей и текущий прирост. Фотографии, их уменьшенные копии и выгрузки могут занимать больше самой базы.
  • Пиковая активность. Важны одновременные обращения к каталогу, поиску, фильтру и корзине. Суточная посещаемость скрывает короткие всплески после рассылки или запуска рекламы.
  • Обмен с 1С. Запишите частоту, продолжительность, объём полной и частичной выгрузки, количество одновременно работающих обменов.
  • Дополнительные задачи. Учитывайте генерацию изображений, поисковый индекс, товарные фиды, резервное копирование и тестовую копию магазина.
  • Окружение. Зафиксируйте версии ядра Битрикс, PHP, базы данных, шаблона и модулей. При переносе это поможет заранее обнаружить несовместимость.

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

CPU, RAM и NVMe: на что смотреть кроме цифр тарифа

CPU: скорость одного запроса и работа нескольких покупателей

Быстрое ядро помогает сокращать время выполнения PHP-кода и отдельных запросов к базе. Дополнительные vCPU позволяют обслуживать больше задач одновременно, но не гарантируют ускорения одной последовательной операции.

Поэтому уточняйте поколение процессора, правила использования vCPU и допустимость длительной нагрузки. Одинаковые «4 vCPU» у разных тарифов не означают одинаковую производительность. Сравнивайте один и тот же магазин с одинаковыми версиями ПО и настройками кеша.

RAM: память нужна всем службам одновременно

На одном VPS память делят MySQL, процессы PHP, OPcache, веб-сервер и ОС. В момент импорта к ним добавляются обработчики обмена, а во время резервного копирования — соответствующая фоновая задача.

Условный бюджет для 8 ГБ RAM: 2,5 ГБ под MySQL, 2,5 ГБ под рабочие процессы PHP, 1 ГБ под ОС и остальные службы, 2 ГБ запаса. Это пример распределения для последующей проверки, а не готовые значения конфигурационных файлов. Реальное потребление зависит от запросов, числа соединений и используемых модулей.

memory_limit в PHP ограничивает память одного выполняемого скрипта. Значение 512M не означает, что всему магазину достаточно 512 МБ. Несколько тяжёлых запросов выполняются параллельно, и общий расход растёт.

Не отдавайте MySQL почти всю RAM по рекомендации для отдельного сервера базы данных, если здесь же работает сайт. И не увеличивайте число обработчиков PHP без расчёта памяти: в PHP-FPM предел задаётся параметром pm.max_children, а в других схемах обработки действуют свои ограничения.

Диск: объём и задержки важнее одного слова NVMe

NVMe — разумный выбор для активного магазина, но уточните ограничения дисковых операций и скорости чтения/записи. Название накопителя не показывает, какую производительность получает конкретный VPS при общей нагрузке на хост.

В ёмкость должны поместиться ОС, магазин с изображениями, база, кеши, журналы и временные данные. Отдельно предусмотрите место под создание архива и распаковку обновлений. Внешнее хранение бэкапа не всегда устраняет потребность во временном месте на самом сервере.

Условный расчёт: 60 ГБ занято сейчас, 20 ГБ ожидается прироста, ещё 20 ГБ нужно для временных операций. Чтобы при таком расходе оставить 25% диска свободными, требуется 100 / 0,75 ≈ 133 ГБ. В этом примере тариф на 160 ГБ выглядит подходящим кандидатом, а 100 ГБ уже недостаточно. Размер временных файлов и архива нужно оценивать по своему проекту.

Какое окружение установить

На момент подготовки статьи в официальных требованиях «1С-Битрикс: Управление сайтом» указаны PHP 8.2 и MySQL 8.0 как минимальные версии. Для новой установки выбирайте поддерживаемые версии, совместимые с текущим ядром, шаблоном и модулями. Минимальная версия в документации не означает, что именно её лучше ставить на новый сервер.

Для типового проекта можно использовать BitrixEnv — подготовленное окружение для продуктов Битрикс. В актуальной инструкции перечислены CentOS Stream 9, Rocky Linux 9, AlmaLinux 9 и Oracle Linux 9. Устанавливать его следует на чистую совместимую ОС. Не запускайте установщик поверх уже работающего магазина или панели управления: окружения могут менять одни и те же службы и конфигурации.

Самостоятельно собранный Linux-стек тоже допустим, если администратор обеспечивает необходимые расширения PHP, настройки веб-сервера, базы, планировщика и резервного копирования. Для существующего магазина сначала разверните копию и проверьте совместимость; переход на новую версию PHP и перенос на VPS лучше проверять поэтапно.

После установки откройте Настройки → Инструменты → Проверка системы в административной части Битрикс. Исправьте обнаруженные проблемы окружения и повторите проверку. Версию и действующие параметры веб-PHP смотрите в Настройки → Инструменты → Диагностика → Настройки PHP: вывод php -v по SSH может относиться к другому интерпретатору.

Какие настройки проверить до запуска магазина

OPcache и кеширование Битрикс

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

Кеш компонентов и управляемый кеш уменьшают повторные вычисления и обращения к базе. В Настройки → Производительность → Панель производительности изучите рекомендации, а на вкладке «Разработка» — нагружающие страницы и некешируемые компоненты. После исправления сравните время тех же запросов, а также корректность цен и остатков после обновления данных.

Технология «Композитный сайт» ускоряет выдачу кешируемой части страницы, но корзина, персональные цены и другие динамические блоки продолжают требовать обработки. Настройки находятся в Настройки → Настройки продукта → Композитный сайт. После включения проверьте магазин гостем и авторизованным покупателем: состав корзины, скидки, наличие и оформление заказа должны соответствовать конкретному пользователю.

Действующие лимиты MySQL и PHP

В BitrixEnv часть параметров автоматически формируется с учётом доступной памяти. Поэтому правка одного my.cnf не доказывает, что база использует именно эти значения. В SQL-клиенте с доступом к вашей базе можно проверить действующие параметры:

SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL VARIABLES LIKE 'max_connections';

Первый параметр задаёт размер основного кеша данных InnoDB в байтах, второй — предел подключений. Для пересчёта размера в ГиБ разделите значение на 1024³. Размер buffer pool не равен всей памяти процесса MySQL: дополнительные расходы создают соединения и выполняемые операции.

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

Фоновые задания и письма

Агенты Битрикс — фоновые задачи приложения. Их выполнение должно быть согласовано с cron, системным планировщиком. В BitrixVM cron по умолчанию уже включён: прежде чем добавлять новую строку, проверьте существующие задания. Задания основного сайта находятся в /etc/crontab, а созданных через меню сайтов — в /etc/cron.d/bx_dbName, где dbName — имя базы. Для управления cron в меню окружения предусмотрен раздел 8. Configure pool sites → 3. Change a site's cron settings.

Результат проверяется выполнением задач по расписанию без посещения сайта. Не должно быть зависших или дублирующихся запусков. Отдельно настройте отправку писем, например через SMTP, и проверьте доставку уведомления о заказе: открывающийся сайт ещё не подтверждает работу почты.

Как учесть обмен с 1С

Обмен может одновременно записывать данные, пересчитывать цены, обновлять индекс и создавать изображения. Магазин, который быстро открывается в спокойном состоянии, способен замедлиться именно в этот момент.

Проверьте отдельно полную выгрузку и обычный обмен изменениями. Для каждого зафиксируйте время, нагрузку и ошибки. Затем повторите основные действия покупателя во время обмена.

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

После изменения расписания проверьте не только отсутствие ошибок, но и результат: контрольные товары, цены, остатки и передачу тестового заказа в 1С. Если обмен проходит только при отключении других обменов, это повод разбирать их взаимодействие с разработчиком. Увеличение таймаутов или RAM само по себе не устраняет такой конфликт.

Как понять, что VPS действительно хватает

Балл в «Панели производительности» полезен для поиска проблем окружения, но не показывает, сколько покупателей выдержит конкретный магазин. Приёмку проводите по рабочим сценариям.

  1. Подготовьте отдельную копию магазина. Используйте реальные объёмы каталога и изображений. Ограничьте доступ и индексацию, отключите боевую оплату, рассылки и обмен с рабочей 1С.
  2. Проверьте путь покупателя. Категория → фильтр → карточка → добавление в корзину → изменение количества → оформление тестового заказа. Повторите для гостя и авторизованного пользователя.
  3. Сравните первый и повторный проход. Так обнаруживается разница между холодным и прогретым кешем. Массовую очистку кеша ради теста выполняйте на копии.
  4. Добавьте ожидаемую нагрузку. В нагрузочном инструменте воспроизведите этот сценарий с интенсивностью запросов, ожидаемой в пиковый период. Наращивайте её постепенно. Затем отдельно проверьте сценарий во время тестового обмена и фоновых задач.
  5. Оцените время и ошибки. Смотрите не только среднее, но и p95 — время, быстрее которого завершились 95% запросов. Сравнивайте одинаковые операции; отдельно учитывайте задержки внешних платёжных и транспортных сервисов.

Критерии приёмки задайте заранее. Например: согласованное время ответа каталога сохраняется в пик, нет ошибок 5xx и потери заказов, обмен укладывается в своё окно, отсутствуют остановки служб из-за памяти. Точный предел нагрузки устанавливается тестом вашего магазина.

Во время проверки по SSH можно выполнить команды Linux:

free -h
vmstat 1 10
df -h
df -i

В free смотрите прежде всего available — оценку доступной памяти. Малое значение free само по себе не означает нехватку: Linux использует RAM для кешей. В vmstat оценивайте последующие строки; первая содержит усреднённые показатели с момента загрузки.

Наблюдение Что оно означает и что делать
Мало available, сохраняется активность si/so в vmstat, службы завершаются Есть признаки давления на память. Проверьте лимиты PHP, число обработчиков и расход MySQL. Если после исправления настроек рабочий набор не помещается, увеличивайте RAM. Занятый swap без активного обмена с ним сам по себе не доказывает проблему.
CPU длительно занят, r в vmstat устойчиво превышает число vCPU Проверьте, какие процессы создают нагрузку. Если запросы оптимизированы, а ограничение возникает при параллельной работе покупателей, рассматривайте дополнительные vCPU.
Одно ядро загружено, остальные свободны, одна операция медленная Разберите саму операцию, SQL и обработчики. Дополнительные ядра могут не сократить её время.
Во время задержек заметно растёт st в vmstat Виртуальная машина ждёт процессорное время гипервизора. Сохраните графики и время проявления, передайте провайдеру для проверки.
Заканчиваются место или inode в df Inode нужны для хранения сведений о файлах. Определите, что растёт: изображения, кеши, журналы или бэкапы. Настройте хранение и ротацию, затем решайте вопрос расширения диска. Не удаляйте файлы базы или upload вслепую.
Сайт медленный при свободных CPU и RAM Проверьте медленные SQL-запросы, блокировки, дисковые задержки и ожидание внешних API. Покупка дополнительных ресурсов без локализации причины может не помочь.

Для проверки дисков используйте iostat -xz -y 1 10 из пакета sysstat. На AlmaLinux или Rocky Linux пакет устанавливается командой sudo dnf install sysstat. Рост времени операций r_await/w_await и очереди aqu-sz одновременно с замедлением магазина — повод проверить хранилище. Один показатель %util не определяет предел производительности NVMe.

Чтобы найти медленные SQL-запросы, откройте Настройки → Настройки продукта → Настройки модулей → Монитор производительности. Включите запись медленных запросов на ограниченный период; для первоначального сбора можно использовать порог 0,1 секунды, указанный в документации по умолчанию. Воспроизведите проблемный сценарий и изучите наиболее долгие и часто повторяющиеся запросы. Порядок анализа описан в документации Битрикс. Индексы и код меняйте после проверки на копии; затем повторите тот же тест.

Когда увеличивать VPS, а когда разделять службы

Расширять один VPS проще, пока магазин укладывается в доступные ресурсы и не требует отдельной схемы отказоустойчивости. Сначала определите ограничение: RAM, вычисления, диски или код. После увеличения ресурсов повторно проверьте настройки служб и рабочую нагрузку.

Выносить MySQL на второй сервер стоит при подтверждённой конкуренции за ресурсы или других требованиях архитектуры. Разделение добавляет сетевую задержку к обращениям между приложением и базой. Поэтому два небольших VPS не обязательно быстрее одного подходящего. Потребуются защищённая связь между узлами, отдельный мониторинг и согласованное резервное копирование.

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

Резервные копии и расходы помимо тарифа

До приёма реальных заказов настройте сохранение базы и файлов вне основного VPS. В Битрикс создание копии доступно через Настройки → Инструменты → Резервное копирование → Создание резервной копии. Проверьте состав архива: база, ядро, публичная часть, изображения и собственный код должны позволять восстановить весь магазин.

Включите проверку целостности архива, сохраните пароль шифрования отдельно и выполните пробное восстановление на изолированной площадке с отдельной базой. Проверьте авторизацию, товары, изображения и последние заказы. Бэкап, который ни разу не восстанавливали, ещё не подтверждает готовность к аварии. Порядок восстановления приведён в официальной инструкции.

Частоту копирования выбирайте по допустимой потере заказов: суточная копия может оставлять до суток изменений без защиты. Если такой интервал неприемлем, нужна более частая защита базы и согласованная процедура восстановления. Отдельно сохраняйте конфигурацию окружения: архив сайта не заменяет настройки ОС, cron и сетевых служб.

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

Как подобрать VPS HSTQ для магазина на Битрикс

Для размещения магазина рассмотрите VPS/VDS HSTQ с NVMe. Перед подбором передайте объём сайта и базы, число товаров и торговых предложений, пиковую нагрузку, параметры обмена с 1С и нужную локацию. Это позволит обсуждать конфигурацию под ваш проект, а не выбирать её только по названию CMS.

На странице HSTQ отдельно обозначены границы услуги: базовая поддержка относится к инфраструктуре, а настройка приложений, оптимизация и постоянное администрирование согласуются отдельно. До заказа уточните совместимость выбранной ОС с окружением, порядок расширения ресурсов и состав работ по запуску магазина.


Помог ли вам данный ответ?

« Назад

База знаний