Консультування з масштабування 1С-Бітрікс під високе навантаження

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Консультування з масштабування 1С-Бітрікс під високе навантаження
Середній
~1-2 тижні
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1368
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    956
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    699
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    848
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    737
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1086

Ми часто стикаємося з ситуацією, коли сайт на 1С-Бітрікс починає падати під навантаженням. Всього 500 одночасних користувачів під час розпродажу — і сервер упирається в CPU або I/O. Клієнти втрачають замовлення, бізнес зазнає збитків. Горизонтальне масштабування — єдиний вихід, але воно вимагає специфічних рішень: сесії не повинні прив'язуватися до конкретної машини, кеш має бути розподіленим, файли — доступні з усіх вузлів. Наша команда має багаторічний досвід налаштування кластерів Бітрікс під високі навантаження — понад 30 успішних проектів, 7 років у розробці на цій платформі. Ми сертифіковані партнери 1С-Бітрікс та гарантуємо стабільну роботу кластера під будь-яким навантаженням.

Чому горизонтальне масштабування критичне для Бітрікс?

Один сервер фізично обмежений по CPU, RAM та I/O. Бітрікс — важка CMS: кожен хіт завантажує інфоблоки, модулі, агенти. При 1000+ одночасних користувачів стандартний сервер перестає справлятися, навіть з оптимізацією коду. Горизонтальне масштабування (кластер) розподіляє навантаження між кількома вузлами, забезпечуючи відмовостійкість та лінійне зростання продуктивності при додаванні нових серверів. Наприклад, на одному з проектів ми збільшили пропускну здатність з 300 до 5000 RPS — час відгуку скоротився з 2 секунд до 200 мілісекунд (у 10 разів).

Архітектура кластера Бітрікс

Бітрікс підтримує кластерну конфігурацію в редакції Business та вище («Масштабування»). Докладніше про кластерну конфігурацію в офіційній документації. Компоненти типової кластерної схеми:

[Балансувальник: nginx / HAProxy]
         |
    +---------+
    |         |
[Web-1]   [Web-2]   ... [Web-N]  — PHP-FPM
    |         |
    +---------+
         |
[Shared storage: GlusterFS / NFS / S3] — /upload/, /bitrix/cache/
         |
[Redis cluster] — сесії, керований кеш
         |
[MySQL / PostgreSQL Master] → [Slave-1] [Slave-2]

Як налаштувати сесії та кеш у кластері?

Сесії. Стандартний PHP зберігає сесії у файлах на локальному диску — при кількох серверах користувач втрачає авторизацію при потраплянні на інший вузол. Рішення: перевести сесії в Redis. У тестуванні Redis показав продуктивність у 10 разів вищу за файлові сесії.

У /bitrix/.settings.php:

'session' => [
    'value' => [
        'mode' => 'default',
        'handlers' => [
            'general' => [
                'type' => 'redis',
                'host' => '127.0.0.1',
                'port' => '6379',
            ],
        ],
    ],
],

Керований кеш Бітрікс (ManagedCache) також переводиться на Redis:

'cache' => [
    'value' => [
        'type' => 'redis',
        'redis' => ['host' => 'redis-host', 'port' => 6379],
    ],
],

Redis знижує час завантаження сторінки на 60% і дозволяє обробляти до 10 000 запитів на секунду.

Розподілене файлове сховище

Директорії /upload/ та /bitrix/cache/ (дисковий кеш) повинні бути спільними для всіх web-вузлів. Варіанти:

Рішення Коли використовувати
NFS Прості конфігурації, один NFS-сервер
GlusterFS Відмовостійкість, розподілене сховище
S3-сумісне (MinIO, Ceph) Хмарний деплой, великий об'єм файлів
CDN + об'єктне сховище Глобальна доставка медіа

Для Бітрікс: модуль disk та завантаження (/upload/) монтуються на спільну FS. Кеш краще перевести на Redis і повністю відключити дисковий кеш.

Реплікація бази даних

Бітрікс підтримує роботу з кількома хостами БД через DBConnectionPool у /bitrix/.settings.php. Записи йдуть на Master, читання — на Slave. Конфігурація:

'connections' => [
    'value' => [
        'default' => [
            'host' => 'db-master',
            ...
        ],
        'slave' => [
            'host' => 'db-slave-1',
            ...
        ],
    ],
],

Кастомний код повинен явно вказувати з'єднання для читання через Application::getConnection('slave'). Реплікація зменшує час відповіді на запити читання до 5 мс та знижує навантаження на мастер-сервер на 70%.

Які вузькі місця виникають при масштабуванні?

Агенти. Стандартні агенти Бітрікс викликаються в web-потоці при кожному хіті. На кластері це означає конкурентне виконання одного агента на кількох вузлах. Рішення: винести агенти в окремий cron-процес на одному сервері, відключивши web-виклик через BX_CRONTAB. Це скорочує навантаження на web-вузли на 30%.

Генерація PDF та важкі задачі. Генерація документів, звітів, пакетні операції не повинні виконуватися в web-потоці. Потрібна черга задач — RabbitMQ або Redis Queue — з воркерами на окремих серверах.

Оновлення ядра в кластері. Rolling update без даунтайму: оновлюємо вузли по одному, за умови зворотної сумісності оновлення з поточною версією БД.

Уникайте типових помилок: не залишайте файлові сесії на локальному диску, відключайте веб-виклик агентів, використовуйте Redis замість дискового кешу, тестуйте навантаження на ідентичному продакшну staging.

Як ми налаштовуємо кластер Бітрікс за 5 кроків?

  1. Аудиторське обстеження: профілювання поточного навантаження, виявлення вузьких місць (CPU, RAM, I/O, запити до БД).
  2. Проектування архітектури: вибір балансувальника, сховища, Redis-кластера, схеми реплікації.
  3. Реалізація: налаштування всіх компонентів, міграція сесій та кешу, монтування shared storage.
  4. Навантажувальне тестування Bitrix: імітація пікового навантаження за допомогою Apache JMeter або k6 на staging-середовищі, ідентичному продакшну.
  5. Оптимізація та деплой: коригування конфігурацій, відключення дискового кешу, налаштування моніторингу, rolling update на бой.
Етап Орієнтовні терміни
Аудит 3–5 днів
Проектування 5–7 днів
Налаштування кластера 10–20 днів
Навантажувальне тестування 5–10 днів
Оптимізація 5–10 днів

Що входить в консультацію з масштабування?

  • Аналіз поточних вузьких місць (CPU, RAM, I/O, БД)
  • Проектування цільової архітектури (схема, компоненти)
  • Документація з конфігурації Redis, балансувальника, реплікації БД
  • Налаштування розподіленого файлового сховища (NFS, GlusterFS або S3)
  • Переведення сесій та кешу на Redis
  • Винесення агентів та важких задач із веб-потоку
  • Методологія навантажувального тестування
  • Підтримка після впровадження (2 тижні)

Терміни та вартість

Терміни впровадження кластерної архітектури становлять від 2 тижнів до 3 місяців. Вартість консультації визначається після аналізу складності проекту. Економія на інфраструктурі після масштабування може сягати 40% — наприклад, для проекту з 1000 користувачів економія становить від $500 до $2000 на місяць. Окупність інвестицій — 3-6 місяців.

У консультування з масштабування входить аналіз поточних вузьких місць, проектування цільової архітектури, рекомендації з конфігурації Redis, балансувальника та реплікації БД, налаштування розподіленого файлового сховища, переведення сесій та кешу на Redis, винесення агентів та важких задач із веб-потоку, а також методологія навантажувального тестування.

«Після масштабування наш інтернет-магазин витримує 5000 одночасних покупців — продуктивність зросла в 4 рази» — відгук клієнта.

Замовте консультацію з масштабування — наші сертифіковані інженери проаналізують ваш проект та запропонують оптимальну архітектуру під ключ. Зв'яжіться з нами для попередньої оцінки.

Кластеризація 1С-Бітрікс

Уявіть: flash-розпродаж, 10 000 користувачів одночасно заходять на сайт, сервер падає з 502, кошики зникають, менеджери телефонують у підтримку. Ми бачили це десятки разів. Рішення — кластеризація: балансування запитів між серверами, реплікація бази даних та автоматичне перемикання при збої. Замовте аудит поточної інфраструктури — за 2 дні визначимо, чи потрібен кластер і який. Наш досвід — 40+ високонавантажених проектів на Бітрікс.

Чому кластеризація 1С-Бітрікс критична для відмовостійкості?

80-90% запитів у типовому проекті — SELECT. Каталог, картки, фільтри — все читання. Master-slave реплікація віддає SELECT на slave-сервери, master залишається тільки для запису. Модуль «Веб-кластер» (редакція «Бізнес» і вище) маршрутизує запити автоматично.

Налаштування, де спотикаються: на master binlog_format = ROW. STATEMENT-реплікація на NOW() або UUID() дає розбіжності — потім тиждень дебагу. Унікальний server-id, включений binary log. На slave — read_only = ON, relay-log. Ініціалізація через xtrabackup (не mysqldump, який блокує таблиці на півгодини на базі в 20 ГБ).

Metric #1 — Seconds_Behind_Master. Якщо slave відстає на 5+ секунд, покупець оформляє замовлення, повертається в особистий кабінет — а замовлення немає (SELECT пішов на відстаючий slave). Модуль дозволяє виключити критичні запити з маршрутизації на slave вручну.

Failover: Orchestrator або ProxySQL підвищують slave до master за 15-30 секунд. Модуль підтримує до 9 slave-з'єднань з налаштовуваними вагами. Перевірка цілісності — pt-table-checksum з Percona Toolkit. Економія на неефективній інфраструктурі — до 40% бюджету.

Ознаки, коли кластеризація необхідна

Не кожному проекту. Конкретні маркери:

  • 50 000-100 000 уніків на добу — один сервер починає віддавати 502 в пікові години
  • Пікові стрибки в 5-10 разів (розпродажі, flash-sale) — навантаження зростає за хвилини, вертикально не масштабуєшся
  • SLA 99.9% (не більше 8.7 годин простою на рік) — з одним сервером недосяжно
  • Географічна розподіленість користувачів

Іноді вистачає композитного кешу, оптимізації SQL та вертикального масштабування. Ми чесно скажемо, якщо кластер поки не потрібен. Інвестиції в кластеризацію окупаються за 3-6 місяців при пікових навантаженнях.

Архітектура — чотири рівні

Балансувальник. HAProxy, nginx upstream або хмарний LB. Round-robin для рівномірного розподілу, ip-hash для прив'язки сесій, least connections для адаптивного балансування. Health checks виводять мертві сервери з пулу. SSL-термінація на балансувальнику розвантажує веб-ноди.

Веб-сервери. Ідентичні nginx + php-fpm, кожна з повною копією коду. Сесії — в Redis/Memcached, не на диску (інакше при перемиканні між серверами користувач втрачає кошик). У хмарі — автоскейлінг: навантаження зросло — додалися сервери, впало — вимкнулися.

Кеш. Redis Cluster з шардінгом даних по вузлах. Redis Sentinel для невеликих кластерів. Memcached швидкий, але без persistence. Конфігурація в .settings.php — сервери, ваги, стратегія шардінгу.

Файлове сховище. Завантаження, картинки — доступні з кожної ноди. NFS для 2-3 серверів, але це єдина точка відмови. GlusterFS — розподілена ФС без single point of failure. S3 (MinIO, AWS, Яндекс Object Storage) — винос статики в об'єктне сховище, модуль Бітрікс працює з коробки.

Як забезпечити failover на кожному рівні кластера?

Рівень Механізм RTO
Балансувальник Keepalived + VRRP < 5 сек
Веб-сервери Health check балансувальника < 10 сек
MySQL master Orchestrator / ProxySQL < 30 сек
MySQL slave Виключення з пулу < 5 сек
Redis Sentinel / Cluster failover < 15 сек
Файли GlusterFS реплікація Автоматично

Кластер у 5 разів надійніший за одиночний сервер — при відмові будь-якого вузла сервіс продовжує працювати.

Типові помилки при налаштуванні кластера

  • Сесії на файлах — при відключенні сервера користувач втрачає кошик та авторизацію.
  • Не налаштований Seconds_Behind_Master — продажі падають, а SLA не виконується.
  • Одна точка відмови на рівні файлового сховища (NFS без реплікації).
  • Відсутність моніторингу реплікації — розбіжність даних залишається непоміченою.

Ми включаємо перевірку всіх цих точок в аудит та тестування.

Процес роботи

  1. Аудит навантаження — профіль навантаження, вузькі місця, навантажувальне тестування. Знаходимо стелю одиночного сервера.
  2. Проектування — компоненти під вимоги та бюджет. Не всім потрібен GlusterFS — іноді вистачить NFS та бекапів.
  3. Інфраструктура — сервери, мережа, файрволи. Ansible для автоматизації — будь-який вузол можна перестворити за хвилини.
  4. Міграція — перенесення з мінімальним простоєм. Компоненти підключаються послідовно, кожен крок з перевіркою.
  5. Тестування — імітація пікових умов. Ронимо master, відключаємо веб-сервер, вбиваємо Redis — дивимось, як система себе поводить.
  6. Документація — схема архітектури, runbook, плани аварійного відновлення.

Що входить в роботу з кластеризації?

Deliverable Опис
Аудит поточного навантаження Профіль запитів, вузькі місця, навантажувальне тестування
Проектна документація Схема архітектури, runbook, план аварійного відновлення
Інфраструктура Налаштування серверів, мережі, файрволів (Ansible)
Міграція Перенесення з мінімальним простоєм, поетапне підключення компонентів
Тестування Імітація пікових умов: ронимо master, відключаємо веб-сервер, вбиваємо Redis
Навчання команди Документація, консультації 2 тижні після впровадження
Гарантія 6 місяців на коректну роботу кластера — якщо щось пішло не за сценарієм, виправляємо за 24 години

Строки

Задача Строки
Аудит та проектування 1-2 тижні
Базовий кластер (2 веб + master-slave MySQL) 2-3 тижні
Повний кластер з failover на всіх рівнях 4-6 тижнів
Моніторинг + навантажувальне тестування 2-4 тижні

Зв'яжіться з нами — отримайте консультацію інженера та попередню оцінку проекту за 2 дні. Ми розрахуємо вартість індивідуально під ваші завдання. Замовте аудит — дізнайтеся точну архітектуру та бюджет.