БесплатноБазовая интеграция с 1С в подарок при заказе интернет-магазина под ключ
Ускорение и производительность

BitrixVM: оптимизация и тонкая настройка окружения под ваш проект

Выжимаем максимум из стандартного окружения BitrixVM: настраиваем пулы php-fpm, memcached, composite, sphinx и push-сервер, тюним nginx, apache и mysql под реальные ресурсы сервера, выставляем размеры кешей и swappiness. На выходе — стабильная и быстрая виртуалка без замены ПО.

1–3 дняна базовый тюнинг окружения
до 2×прироста по времени ответа
без заменыостаёмся на стоковой BitrixVM
24/7мониторинг панели и сервисов
панель nginx php-fpm memcached mysql sphinx push
Что настраиваем

Состав тонкой настройки BitrixVM

Проходим по всем сервисам виртуалки и приводим параметры к ресурсам именно вашего сервера и профилю нагрузки проекта — без замены стандартного ПО BitrixVM.

Пулы php-fpm под ресурсы

Считаем число воркеров, start, min и max spare под ядра и память, убираем простой и нехватку процессов.

memcached и кеширование

Подключаем memcached как хранилище кеша Битрикса, выставляем объём памяти и размеры кешей под проект.

Composite и фронт-кеш

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

sphinx и push-сервер

Настраиваем sphinx для поиска и фильтров, поднимаем push-сервер для уведомлений и чата в реальном времени.

Тюнинг nginx, apache, mysql

Правим воркеры и буферы nginx или apache, innodb-буферы, кеши и таймауты mysql под фактический трафик.

Память, swappiness, мониторинг

Балансируем память сервисов, настраиваем swappiness и лимиты, обновляем окружение и включаем мониторинг панели.

Зачем тюнинговать BitrixVM

Где стоковая виртуалка теряет скорость и устойчивость

BitrixVM ставится с универсальными параметрами «на всё подряд», поэтому на конкретном сервере она почти всегда настроена неоптимально: пулы php-fpm не под ядра, кеши малы, memcached простаивает. Тонкая настройка раскрывает заложенный в окружение запас без замены ПО.

Пулы php-fpm заданы по умолчанию и не учитывают число ядер и память сервера.
Считаем pm.max_children, start и spare-серверы под фактические ресурсы, убираем простой и нехватку воркеров.
Под нагрузкой сервер уходит в swap, ответы тормозят, иногда падает OOM.
Балансируем память между php-fpm, mysql и кешами, правим swappiness и лимиты, чтобы swap не включался зря.
Composite и кеш почти не работают: размеры малы, memcached подключён не везде.
Поднимаем размеры кешей, заводим memcached как хранилище кеша Битрикса и включаем композитный кеш по фронту.
Поиск по каталогу медленный, фильтры висят, sphinx не настроен или выключен.
Настраиваем sphinx или его связку с Битриксом, переносим тяжёлый поиск с базы и ускоряем фильтрацию.
mysql и nginx крутятся на дефолтных лимитах, буферы и таймауты не под проект.
Тюним innodb-буферы, кеши и таймауты mysql, воркеры и буферы nginx или apache под реальный профиль трафика.
Push-сервер и панель не настроены, обновления окружения не ставятся, мониторинга нет.
Поднимаем push-сервер, обновляем окружение через панель, включаем мониторинг сервисов и нагрузки на будущее.
Как это устроено

Путь запроса через настроенную BitrixVM

Запрос приходит на nginx, по возможности отдаётся из композитного кеша, иначе уходит в php-fpm; данные берутся из memcached и mysql, поиск идёт через sphinx. Каждое звено настроено под ресурсы сервера.

nginxвходной фронт compositeкеш по фронту php-fpmпулы воркеров memcachedкеш в памяти mysqlinnodb-буферы sphinxпоиск и фильтры Каждый сервис настроен под ресурсы сервера, поэтому запрос проходит быстро и без обращения к диску
nginx → composite-кеш → php-fpm → memcached и mysql → sphinx для поиска.
Эффект после настройки

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

до 2×
быстрее время ответа на типовых страницах
−40%
нагрузки на CPU в пике за счёт кеша
×3
запас по одновременным посетителям
0
уходов в swap при штатном трафике

Ориентиры по проектам нашей команды на стоковой BitrixVM. Точную картину по вашему серверу покажем на бесплатном аудите окружения.

Сравнение

Как настроить BitrixVM: своими силами, фрилансер или студия

Критерий Своими силамиФрилансерСтудия B2Bsite
Скорость работ Часы и дни пробЗависит от занятости1–3 дня по плану
Подбор параметров Параметры наугадШаблон без расчётаРасчёт под ресурсы
Безопасность изменений Риск уронить продБез откатаБэкап и откат
Глубина настройки По верхамТочечноВсе сервисы
Прозрачность Нет повторяемостиДокументации нетОтчёт и регламент
Этапы работы

Как мы настраиваем BitrixVM

Работаем по шагам: сначала снимаем картину сервера и нагрузки, затем меняем параметры по одному с замерами, чтобы каждое изменение давало понятный эффект и было обратимым.

01

Аудит окружения

Снимаем версии, ресурсы сервера, текущие параметры сервисов, профиль нагрузки и узкие места по метрикам.

02

План и резервная копия

Готовим план изменений по приоритету эффекта и делаем бэкап конфигов и базы, чтобы любой шаг можно было откатить.

03

Тюнинг сервисов

Настраиваем php-fpm, memcached, mysql, nginx или apache, composite, sphinx и push-сервер под ресурсы сервера.

04

Память и устойчивость

Балансируем память между сервисами, правим swappiness и лимиты, проверяем поведение под пиковой нагрузкой.

05

Замеры и проверка

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

06

Отчёт и мониторинг

Включаем мониторинг панели, фиксируем итоговые параметры в отчёте и даём регламент обновления окружения.

Сроки

Сколько занимает настройка BitrixVM

1 день Аудит окружения, замеры и план изменений
1
1–2 дня Бэкап и базовый тюнинг php-fpm, mysql и кешей
2
1–2 дня Composite, memcached, sphinx и push-сервер
3
1 день Память, swappiness, нагрузочная проверка
4
далее Мониторинг, отчёт и регламент обновлений
5
Подробно об услуге

BitrixVM и зачем её тонко настраивать

BitrixVM — это готовое серверное окружение от 1С-Битрикс, в котором уже собраны и связаны nginx, apache, php-fpm, mysql, memcached, sphinx, push-сервер и управляющая панель. Оно ставится на сервер одной командой и сразу работает, поэтому многие воспринимают виртуалку как нечто самонастраивающееся. На деле BitrixVM приходит с универсальными параметрами, рассчитанными «на всё подряд»: они должны более или менее жить и на маленьком VPS, и на мощной выделенной машине. На вашем конкретном сервере это почти всегда означает, что часть ресурсов простаивает, а часть сервисов настроена так, что под нагрузкой создаёт узкие места.

Тонкая настройка BitrixVM — это приведение параметров каждого сервиса к реальным ресурсам сервера и профилю нагрузки вашего проекта. Мы не меняем стандартное ПО и не уходим со штатного окружения: остаёмся на той же виртуалке, но настраиваем её так, чтобы тот же самый сервер отдавал страницы быстрее, держал больше одновременных посетителей и не уходил в swap в часы пик. Это самый дешёвый способ ускорения — раскрыть запас, который уже оплачен, прежде чем думать про апгрейд железа.

Что именно мы настраиваем в окружении

Работа идёт по всем ключевым сервисам виртуалки, потому что скорость определяется самым слабым звеном. Пулы php-fpm считаем под число ядер и свободную память, чтобы воркеров хватало в пике и они не съедали систему в простое. memcached подключаем как хранилище кеша Битрикса и выделяем ему память под рабочий объём кеша. Composite включаем там, где страницы реально можно отдавать из кеша по фронту, минуя php. sphinx настраиваем под поиск и фасетные фильтры, снимая тяжёлые запросы с базы. mysql тюним по innodb-буферам, кешам и таймаутам, а nginx или apache — по воркерам и буферам под фактический трафик.

Главные узлы, по которым идёт тонкая настройка:

  • пулы php-fpm под число ядер и память: pm.max_children, start, min и max spare;
  • memcached как хранилище кеша Битрикса и размеры кешей под рабочий объём проекта;
  • композитный сайт и кеш по фронту, чтобы отдавать страницы без захода в php;
  • sphinx для поиска и фильтров и push-сервер для уведомлений в реальном времени;
  • innodb-буферы, кеши и таймауты mysql, воркеры и буферы nginx или apache;
  • баланс памяти между сервисами, swappiness и лимиты против ухода в swap.

Кому нужна оптимизация BitrixVM

Настройка окупается там, где проект растёт, а сервер не менялся. Это интернет-магазины с большим каталогом и фильтрами, B2B-порталы и личные кабинеты, контентные площадки с пиками трафика. Типичные сигналы: сайт тормозит в часы пик, время ответа скачет, сервер периодически уходит в swap или падает по OOM, поиск по каталогу медленный, а админка подвисает при загрузке. Часто за всем этим стоит не нехватка железа, а ненастроенное окружение, которое не использует имеющиеся ресурсы.

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

Как мы ведём настройку

Любые изменения мы делаем безопасно и измеримо. Сначала снимаем картину: версии окружения, ресурсы сервера, текущие параметры сервисов, профиль нагрузки и узкие места по метрикам. Затем составляем план по приоритету эффекта и делаем резервную копию конфигов и базы, чтобы любой шаг можно было откатить. Параметры меняем по одному и сразу сверяем метрики до и после — так видно, что именно дало прирост, и исключены случайные регрессии. После настройки прогоняем нагрузочные сценарии, убеждаемся в стабильности и фиксируем итоговые значения.

Отдельное внимание уделяем обновлению окружения. Версии php, mysql и самих сервисов в виртуалке со временем устаревают, и проект продолжает жить на старом стеке, теряя в скорости и безопасности. Через панель BitrixVM мы аккуратно обновляем окружение до актуальной поддерживаемой версии, проверяя совместимость с проектом и делая это в безопасном окне. Свежий php сам по себе часто даёт ощутимый прирост производительности, а вместе с настроенными пулами и кешами эффект складывается.

Завершаем работу отчётом и заделом на будущее: включаем мониторинг панели и сервисов, обновляем окружение через панель BitrixVM и отдаём регламент, по которому окружение можно обновлять и пересматривать параметры дальше. Если в ходе аудита выяснится, что ресурсов сервера действительно не хватает, мы об этом честно скажем — но в большинстве случаев тонкой настройки достаточно, чтобы получить стабильную и быструю виртуалку без замены ПО и апгрейда железа. В результате вы перестаёте переплачивать за простаивающие мощности и получаете предсказуемую скорость даже в часы пиковой посещаемости.

Цены

Сколько стоит оптимизация BitrixVM

Стоимость зависит от состояния окружения, числа сервисов и нагрузки проекта. Ниже — ориентиры; точную смету присылаем после бесплатного аудита окружения.

Экспресс-тюнинг
от 18 000 ₽
Срок: 1–2 дня

Базовая настройка ключевых сервисов виртуалки под ресурсы сервера.

  • Аудит окружения и замеры
  • Пулы php-fpm под ресурсы
  • Размеры кешей и memcached
  • Тюнинг mysql и nginx
  • Короткий отчёт с параметрами
Популярный выбор
Полная настройка
от 38 000 ₽
Срок: 3–5 дней

Сквозная настройка всех сервисов BitrixVM с проверкой под нагрузкой.

  • Всё из «Экспресс-тюнинга»
  • Composite и фронт-кеш
  • sphinx и push-сервер
  • Память, swappiness, лимиты
  • Нагрузочная проверка
  • Подробный отчёт и регламент
Настройка и сопровождение
от 60 000 ₽
Срок: от 5 дней

Полный тюнинг плюс мониторинг и регулярная поддержка окружения.

  • Всё из «Полной настройки»
  • Мониторинг панели и сервисов
  • Обновление окружения
  • Реакция на инциденты
  • Плановый пересмотр параметров
Экспресс-тюнинг от 18 000 ₽
Срок: 1–2 дня

Базовая настройка ключевых сервисов виртуалки под ресурсы сервера.

  • Аудит окружения и замеры
  • Пулы php-fpm под ресурсы
  • Размеры кешей и memcached
  • Тюнинг mysql и nginx
  • Короткий отчёт с параметрами
Популярный Полная настройка от 38 000 ₽
Срок: 3–5 дней

Сквозная настройка всех сервисов BitrixVM с проверкой под нагрузкой.

  • Всё из «Экспресс-тюнинга»
  • Composite и фронт-кеш
  • sphinx и push-сервер
  • Память, swappiness, лимиты
  • Нагрузочная проверка
  • Подробный отчёт и регламент
Настройка и сопровождение от 60 000 ₽
Срок: от 5 дней

Полный тюнинг плюс мониторинг и регулярная поддержка окружения.

  • Всё из «Полной настройки»
  • Мониторинг панели и сервисов
  • Обновление окружения
  • Реакция на инциденты
  • Плановый пересмотр параметров

Дополнительные опции

Перенос проекта на новую BitrixVM от 15 000 ₽
Настройка sphinx под большой каталог от 12 000 ₽
Подключение и тюнинг push-сервера от 8 000 ₽
Калькулятор услуги

Сколько ресурсов простаивает на ненастроенной виртуалке

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

Условная экономия на сервере в месяц 0 ₽

Оценка по формуле: стоимость сервера × простаивающий запас × доля, которую раскрывает настройка. Это ориентир выгоды от отказа от апгрейда сервера, а не гарантия.

Умный расчёт

Рассчитайте настройку BitrixVM под ваш сервер

Ответьте на несколько вопросов о сервере, нагрузке и сервисах — прикинем объём работ по тюнингу окружения и пришлём ориентир по стоимости и срокам.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы по настройке BitrixVM

Интернет-магазин

Тюнинг php-fpm и кешей на стоковой виртуалке

Пересчитали пулы php-fpm под ядра, подключили memcached и подняли размеры кешей — каталог перестал тормозить в часы пик.

−45%Время ответа
−35%CPU в пике
2 дняСрок
B2B-портал

Composite и sphinx на портале контрагентов

Включили композитный кеш и настроили sphinx под поиск по номенклатуре, разгрузили базу и ускорили личные кабинеты.

×4 быстрееПоиск
−50%Нагрузка БД
4 дняСрок
Контентный портал

Память и swappiness против уходов в swap

Сбалансировали память сервисов и правили swappiness — сервер перестал уходить в swap и падать по OOM под нагрузкой.

0Уходов в swap
99,9%Аптайм
3 дняСрок
Отзывы клиентов

Что говорят о настройке окружения

«Сайт лежал в часы пик, думали менять сервер. Ребята перенастроили BitrixVM за два дня — php-fpm, кеши, mysql — и тот же сервер спокойно держит нагрузку. Апгрейд не понадобился.»

Алексей М. Руководитель интернет-магазина

«Поиск по каталогу был невыносимо медленным. Настроили sphinx и composite, разгрузили базу. Фильтры теперь летают, жалоб от клиентов больше нет. Отчёт с параметрами приложили.»

Ирина К. Владелец B2B-портала

«Виртуалка регулярно уходила в swap и подвисала. Поправили память и swappiness, включили мониторинг панели. Полгода полёт нормальный, окружение обновляем по их регламенту.»

Дмитрий П. Технический директор

«Ценно, что меняли параметры по одному и с замерами, а не наугад. Перед началом сделали бэкап, всё было обратимо. Чувствуется, что люди понимают именно BitrixVM, а не сервер вообще.»

Сергей В. Сооснователь сервиса
Почему мы

На что можно рассчитывать по договору

Знаем именно BitrixVM

Работаем со стоковым окружением Битрикса, знаем его сервисы и панель, а не сервер вообще.

Меняем с замерами

Каждый параметр правим по одному и сверяем метрики до и после, без настройки наугад.

Всё обратимо

Перед работами делаем бэкап конфигов и базы — любой шаг можно безопасно откатить.

Отчёт и регламент

Отдаём итоговые параметры, отчёт по приросту и регламент обновления окружения.

База знаний

Частые вопросы по BitrixVM — и наш ответ

Это не общие советы из интернета, а закономерности из реальной настройки окружений Битрикса. Каждый ответ — позиция нашей команды.

php-fpm

Какие пулы php-fpm ставить, чтобы хватало воркеров и не съедало память

Наш ответ

Считаем pm.max_children от свободной памяти под средний размер php-процесса проекта, а start, min и max spare задаём так, чтобы воркеры были готовы к пику, но не простаивали. Дефолтные значения BitrixVM почти всегда либо мало воркеров, либо риск выесть память.

swap

Сервер уходит в swap и подвисает, хотя памяти вроде хватает

Наш ответ

Чаще всего память не сбалансирована между php-fpm, mysql и memcached, а swappiness выставлен высоко. Перераспределяем память по сервисам, снижаем swappiness и ставим лимиты, чтобы система не уводила в swap горячие данные при первой возможности.

memcached

Стоит ли включать memcached и сколько памяти ему выделять

Наш ответ

Да, на BitrixVM memcached как хранилище кеша Битрикса заметно разгружает диск и базу. Объём подбираем под размер рабочего кеша проекта: слишком мало — постоянные вытеснения, слишком много — отбираем память у php и mysql. Баланс считаем по фактическому профилю.

composite

Композит включён, но прироста скорости почти нет

Наш ответ

Обычно composite либо собирается не для тех страниц, либо ломается из-за персонализации и cookie. Разбираем, какие страницы реально можно отдавать из кеша по фронту, чиним сборку и проверяем, что nginx отдаёт композитную версию без захода в php.

sphinx

Нужен ли sphinx, если поиск и так работает на базе

Наш ответ

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

Экспертный взгляд

Настроить BitrixVM или менять сервер и уходить со штатного окружения

Когда сайт на Битриксе начинает тормозить, первая мысль обычно самая дорогая: нужен сервер помощнее. Иногда это правда, но гораздо чаще проблема не в железе, а в том, что окружение работает на параметрах по умолчанию и не использует и половины имеющихся ресурсов. BitrixVM устроена так, чтобы запуститься где угодно, и ради этой универсальности она настроена компромиссно. Поэтому прежде чем доплачивать за более мощный тариф, имеет смысл выжать максимум из текущей виртуалки тонкой настройкой. Ниже разбираем, почему стоковые параметры тормозят, что меняет тюнинг и когда апгрейд всё-таки оправдан.

Почему дефолтная BitrixVM почти всегда настроена неоптимально

Универсальная конфигурация вынуждена быть осторожной. Пулы php-fpm задаются с оглядкой на самые слабые серверы, поэтому на машине с запасом ядер воркеров оказывается мало, и в пике запросы встают в очередь, хотя процессор простаивает. Размеры кешей выставлены скромно, memcached может быть подключён не ко всем компонентам, а композитный кеш либо выключен, либо собирается не для тех страниц. mysql работает на буферах, которых хватает для теста, но мало для боевого каталога. В итоге сервер с приличными характеристиками отдаёт страницы так, будто это бюджетный VPS.

Отдельная беда — память и swap. На ненастроенной виртуалке память не сбалансирована между php-fpm, mysql и memcached, а параметр swappiness часто оставлен высоким. Под нагрузкой система начинает выгружать в swap даже горячие данные, и сайт подвисает на ровном месте, иногда доходя до падения по нехватке памяти. Со стороны это выглядит как нехватка железа, хотя на деле ресурсы просто распределены неудачно.

Что меняет тонкая настройка

Тюнинг превращает универсальное окружение в окружение под ваш сервер и ваш проект. Пулы php-fpm пересчитываются под фактические ядра и память, поэтому воркеров хватает в пике без простоя в затишье. Кеши поднимаются до рабочего объёма, memcached берёт на себя кеш Битрикса и разгружает диск, а композитный сайт отдаёт готовые страницы по фронту, не дёргая php на каждый заход. mysql получает буферы и кеши под реальный каталог, sphinx снимает тяжёлый поиск с базы, а память распределяется так, чтобы swap не включался при штатном трафике. Результат — тот же сервер держит кратно больше нагрузки и отвечает быстрее.

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

Чем тюнинг окружения отличается от настройки голого сервера

Настроить абстрактный LAMP-стек и настроить BitrixVM — разные задачи. Битрикс предъявляет свои требования к окружению, проверяет их в панели, по-своему работает с кешем и композитом, имеет встроенный push-сервер и собственный механизм обновления окружения. Универсальный системный администратор может выставить разумные параметры nginx и mysql, но не всегда учитывает специфику Битрикса: как именно тот хранит кеш, почему ломается composite, как связать sphinx с поиском по инфоблокам. Поэтому общий тюнинг сервера часто даёт меньший эффект, чем настройка именно под Битрикс.

Мы настраиваем окружение в связке с самим проектом. Если медленный не сервер, а конкретные тяжёлые запросы или раздутые инфоблоки, то одним тюнингом BitrixVM скорость не вернуть — и мы это видим на аудите. В таких случаях параллельно подключается работа на стороне приложения: настройка кеширования Битрикса на уровне компонентов и страниц, оптимизация запросов и структуры данных. Тонкая настройка окружения и оптимизация кода усиливают друг друга, и максимальный эффект даёт их сочетание, а не что-то одно.

Когда тюнинга достаточно, а когда нужен апгрейд

Мы не уговариваем менять сервер ради продажи и не делаем вид, что настройка решит любую проблему. Тонкой настройки обычно достаточно, когда на сервере есть запас ресурсов, который простаивает из-за дефолтных параметров: процессор не загружен, но запросы встают в очередь; памяти хватает, но система уходит в swap; кеши малы, а диск перегружен. В этих случаях тот же сервер после тюнинга держит в разы больше нагрузки. Если же сервер реально упёрся в потолок — память и CPU стабильно в максимуме при оптимальных параметрах, каталог перерос одну машину, нужен запас под взрывной рост, — мы честно скажем, что пора масштабировать инфраструктуру, и поможем это спланировать. Решение принимаем по метрикам аудита, а не по тому, что выгоднее продать.

Как мы делаем изменения безопасными

Настройка боевого окружения — это всегда риск что-то сломать, поэтому процесс выстроен на обратимость. Перед началом снимаем резервную копию конфигов и базы, фиксируем исходные параметры. Меняем по одному параметру и сразу замеряем — так любое ухудшение сразу видно и легко откатывается. Сложные изменения по возможности обкатываем на копии или в окне низкой нагрузки. После каждого этапа проверяем, что сайт и админка работают, панель не показывает ошибок, а композит и поиск отдают корректные данные. Такой темп чуть медленнее, чем поменять всё разом, зато прод не падает, а каждое улучшение подтверждено цифрами.

Возражения, которые мы слышим чаще всего

«У нас и так всё работает, зачем трогать». Работает — не значит работает быстро и с запасом. Ненастроенная виртуалка справляется в будни и ложится в распродажу или рассылку, когда трафик скачет. Тюнинг как раз про устойчивость в пике и про то, чтобы не платить за лишний сервер. Эффект мы показываем замерами до и после, поэтому пользу видно в цифрах, а не на словах.

«Боимся, что после настройки что-то отвалится». Именно поэтому мы делаем бэкап, меняем параметры по одному и всё проверяем. Любой шаг обратим, а в отчёте остаётся, что и зачем менялось, — при желании это воспроизведёт даже другой администратор. Мы не превращаем штатное окружение в чёрный ящик, а оставляем его прозрачным и поддерживаемым.

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

Что вы получаете по итогу

На выходе вы получаете стабильную и быструю виртуалку, настроенную под ваш сервер: пересчитанные пулы php-fpm, работающие кеши и memcached, включённый там, где нужно, композит, настроенный поиск через sphinx, тюнингованные mysql и nginx, сбалансированную память без уходов в swap. Плюс отчёт с метриками до и после, перечень итоговых параметров и регламент обновления окружения через панель. Если подключите сопровождение, добавляется мониторинг сервисов и нагрузки, своевременное обновление окружения и реакция на инциденты, чтобы скорость не деградировала со временем.

Главная ценность услуги в том, что она раскрывает уже оплаченные ресурсы прежде, чем вы потратитесь на более дорогой сервер. Часто этого хватает, чтобы закрыть тему производительности на год вперёд. А если в перспективе понадобится более глубокая работа со скоростью, у вас уже будет аккуратно настроенное окружение и понимание узких мест — отличная база, чтобы двигаться дальше точечно и без переплат.

Как мы подбираем параметры под конкретный сервер

Универсальных «правильных» значений не существует — те же пулы php-fpm на сервере с четырьмя ядрами и сервере с шестнадцатью ядрами должны быть совершенно разными. Поэтому мы не переносим чужой конфиг, а считаем параметры от ваших ресурсов. Сначала измеряем, сколько памяти в среднем занимает один php-процесс именно вашего проекта: на тяжёлом интернет-магазине с большим количеством компонентов это одна цифра, на лёгком контентном сайте — совсем другая. От этого считаем максимальное число воркеров, которое сервер потянет без риска выесть память, и оставляем запас под mysql, memcached и системные нужды.

Дальше распределяем оставшуюся память между базой и кешами. innodb-буферы mysql подбираем под объём горячих данных каталога, чтобы рабочий набор помещался в память и база реже ходила на диск. memcached получает столько, сколько нужно рабочему кешу Битрикса, не больше. Кеши nginx и параметры таймаутов выставляем под профиль трафика: статика отдаётся напрямую и кешируется, а к php уходит только то, что действительно динамично. В итоге каждый сервис знает свой потолок, сумма потолков укладывается в память сервера с запасом, и в пике ничто не вытесняет соседа в swap.

Типичные узкие места, которые мы находим на аудите

За годы настройки окружений Битрикса набор проблем повторяется. Чаще всего это слишком скромные пулы php-fpm на сервере с явным запасом по ядрам — запросы стоят в очереди, а процессор отдыхает. Часто встречается выключенный или сломанный composite: технология подключена, но из-за персонализации или неверного списка страниц nginx всё равно гоняет каждый заход через php. Регулярно видим memcached, который установлен, но не подключён к кешу Битрикса, поэтому кеш лежит на диске и грузит дисковую подсистему. Нередко mysql работает на буферах из коробки, которых хватает для теста, но мало для боевого каталога, и база постоянно читает с диска то, что должно жить в памяти.

Отдельная частая находка — высокий swappiness вместе с несбалансированной памятью, из-за чего сервер уходит в swap на ровном месте. Бывает, что поиск по большому каталогу крутится прямо на mysql без sphinx и кладёт базу в часы пик. Иногда обнаруживается давно не обновлявшееся окружение со старым php, которое само по себе тормозит сильнее, чем мог бы тот же сервер на актуальной версии. Каждое из этих узких мест по отдельности кажется мелочью, но вместе они и складываются в ощущение, что «сайт тормозит и пора менять сервер», хотя на деле менять нужно параметры.

Почему тюнинг окружения дешевле и безопаснее переезда

Сменить сервер или мигрировать в облако — это всегда проект: перенос данных, переключение DNS, риск простоя, новая среда, которую тоже надо настраивать. Если переехать с ненастроенной виртуалки на более мощную, но снова дефолтную, проблема просто переедет вместе с вами, только теперь за более дорогой тариф. Тонкая настройка текущего окружения такого риска не несёт: сайт остаётся на месте, изменения обратимы, а эффект виден сразу по метрикам. Поэтому разумная последовательность — сначала выжать максимум из того, что есть, и только если этого объективно мало, планировать масштабирование уже на настроенной и понятной базе.

С чего начать

Начните с бесплатного аудита окружения. Дайте доступ к серверу и панели BitrixVM — мы снимем параметры, нагрузку и узкие места и покажем, где именно простаивают ресурсы и что даст тонкая настройка в вашем случае. По итогам пришлём план работ, ориентир по приросту скорости и смету в течение рабочего дня. Если выяснится, что тюнинга мало и нужен апгрейд или работа с кодом, скажем прямо и предложим маршрут. В любом случае вы получите честную картину состояния окружения, а не общие слова про скорость.

Вопросы и ответы

Частые вопросы об оптимизации BitrixVM

Что такое BitrixVM простыми словами? +

BitrixVM — это готовое серверное окружение от 1С-Битрикс. В нём заранее собраны и связаны nginx, apache, php-fpm, mysql, memcached, sphinx, push-сервер и управляющая панель. Оно ставится на сервер одной командой и сразу работает, поэтому не нужно собирать стек вручную. Проще говоря, это коробочный сервер под Битрикс, который остаётся только настроить под ваш проект.

Что такое тонкая настройка окружения? +

Это приведение параметров каждого сервиса виртуалки к реальным ресурсам сервера и нагрузке проекта. Мы пересчитываем пулы php-fpm, размеры кешей, буферы mysql, настройки nginx, composite, sphinx и баланс памяти. ПО при этом не меняем — остаёмся на штатной BitrixVM, но настраиваем её так, чтобы тот же сервер работал быстрее и стабильнее.

Чем тюнинг BitrixVM отличается от настройки обычного сервера? +

Битрикс предъявляет свои требования к окружению, по-своему хранит кеш, использует composite, push-сервер и собственный механизм обновления. Универсальная настройка LAMP-стека этого не учитывает, поэтому даёт меньший эффект. Мы настраиваем именно под Битрикс: связываем sphinx с поиском по инфоблокам, чиним composite, подбираем кеш под компоненты — там, где общий тюнинг проходит мимо.

Что такое php-fpm и его пулы? +

php-fpm — это менеджер процессов PHP, который обрабатывает запросы к сайту. Пул — это группа рабочих процессов (воркеров), которые одновременно отвечают посетителям. Если воркеров мало, запросы встают в очередь и сайт тормозит даже при свободном процессоре. Если слишком много — они съедают память. Мы подбираем число воркеров под ядра и память сервера.

Что такое composite на Битриксе? +

Composite — это технология композитного сайта, при которой статичная часть страницы кешируется и отдаётся посетителю по фронту почти мгновенно, а динамика подгружается отдельно. Когда composite настроен верно, сервер не запускает php на каждый заход, и скорость на типовых страницах вырастает кратно. Мы включаем его там, где страницы реально можно кешировать.

Нужно ли включать memcached? +

Почти всегда да. memcached хранит кеш Битрикса в оперативной памяти, разгружая диск и базу. Это особенно заметно на проектах с большим числом компонентов и страниц. Мы подключаем memcached как хранилище кеша и выделяем ему память под рабочий объём, чтобы не было ни постоянных вытеснений, ни отъёма памяти у php и mysql.

Зачем нужен sphinx и когда он оправдан? +

sphinx — это поисковый движок, который снимает тяжёлый поиск и фасетные фильтры с базы и отдаёт результаты в разы быстрее. Он оправдан на большом каталоге с фильтрами, где поиск на mysql становится узким местом. На небольшом каталоге иногда достаточно настроить индексы базы, и мы честно скажем, если sphinx в вашем случае избыточен.

Что делает push-сервер и нужно ли его настраивать? +

Push-сервер обеспечивает обмен сообщениями в реальном времени: уведомления, онлайн-чат, обновление данных без перезагрузки страницы. Если в проекте используются эти функции, push-сервер нужно поднять и настроить, иначе они работают через постоянные опросы и грузят сервер. Если функции не используются — настройку можно отложить, ресурсы не тратятся.

Как настраиваются кеши и их размеры? +

Размеры кешей подбираются под рабочий объём проекта: слишком маленькие приводят к постоянным вытеснениям и промахам, слишком большие отбирают память у других сервисов. Мы смотрим фактический объём кеша Битрикса, профиль обращений и выставляем размеры так, чтобы горячие данные стабильно держались в памяти, а сервер не уходил в swap.

composite включён, но скорость не выросла — почему? +

Чаще всего composite собирается не для тех страниц или ломается из-за персонализации и cookie, поэтому nginx всё равно отдаёт страницу через php. Мы разбираем, какие страницы реально можно кешировать по фронту, чиним сборку композита и проверяем, что готовая версия отдаётся без захода в php. Тогда прирост появляется.

Почему сервер уходит в swap, хотя памяти вроде хватает? +

Обычно память не сбалансирована между php-fpm, mysql и memcached, а параметр swappiness выставлен высоко. Система начинает выгружать в swap даже горячие данные, и сайт подвисает. Мы перераспределяем память по сервисам, снижаем swappiness и ставим лимиты, чтобы при штатном трафике swap вообще не включался.

Что такое swappiness и зачем его менять? +

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

Сайт иногда падает по нехватке памяти (OOM) — это лечится тюнингом? +

Чаще всего да. OOM возникает, когда сумма потребления php-fpm, mysql и кешей превышает память сервера в пике. Мы считаем потолок каждого сервиса так, чтобы в сумме они укладывались в доступную память с запасом, и убираем ситуации, когда всплеск воркеров или запросов выедает всю память и роняет процесс.

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

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

Не станет ли хуже после изменения параметров? +

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

Сколько занимает настройка BitrixVM? +

Базовый тюнинг ключевых сервисов мы делаем за 1–2 дня, полную настройку всех сервисов с проверкой под нагрузкой — за 3–5 дней. Срок зависит от состояния окружения, числа сервисов и сложности проекта. Точную оценку даём после бесплатного аудита, когда видим реальную картину сервера и нагрузки.

Будет ли простой сайта во время работ? +

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

Что я получу по итогу работ? +

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

Сколько стоит оптимизация BitrixVM? +

Экспресс-тюнинг ключевых сервисов начинается от 18 000 рублей, полная настройка всех сервисов — от 38 000, вариант с мониторингом и сопровождением — от 60 000. Стоимость зависит от состояния окружения, числа сервисов и нагрузки. Точную смету присылаем после бесплатного аудита окружения, без обязательств.

Окупится ли настройка или проще сразу сменить сервер? +

Чаще тонкая настройка окупается лучше апгрейда: она раскрывает уже оплаченные ресурсы, которые простаивают из-за дефолтных параметров, и обходится дешевле более дорогого тарифа сервера. На бесплатном аудите мы как раз и считаем, что выгоднее в вашем случае — тюнинг текущего сервера или его замена.

Когда тюнинга недостаточно и реально нужен апгрейд? +

Когда сервер упёрся в потолок при уже оптимальных параметрах: память и CPU стабильно в максимуме, каталог перерос одну машину, нужен запас под взрывной рост. В этом случае мы прямо говорим, что пора масштабировать инфраструктуру, и помогаем спланировать переход. Решение принимаем по метрикам аудита, а не ради продажи.

Можно ли поручить вам и настройку, и дальнейшую поддержку? +

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

Вы переносите проект на новую BitrixVM? +

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

Нужно ли что-то от нас, кроме доступа к серверу? +

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

Начать проект

Настроим вашу BitrixVM?

Дайте доступ к серверу и панели — проведём бесплатный аудит окружения, покажем, где простаивают ресурсы, и пришлём план тюнинга со сметой в течение рабочего дня.

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета