Официальный дистрибутив «1С-Битрикс: Виртуальная машина» (BitrixVM) — отличная отправная точка для хостинга проектов. Однако стандартная конфигурация рассчитана на минимальное потребление ресурсов и не раскрывает возможности мощных многоядерных серверов.
1. Перенос кеша и сессий в Redis
Файловый кеш на нагруженных проектах создает огромную нагрузку на дисковую подсистему. Хранение кеша и сессий в оперативной памяти через Redis снижает задержки в десятки раз.
Отредактируйте файл /bitrix/.settings.php:
'cache' => [
'value' => [
'type' => [
'class_name' => '\Bitrix\Main\Data\CacheEngineRedis',
'extension' => 'redis'
],
'redis' => [
'host' => '127.0.0.1',
'port' => '6379',
'serializer' => 2 // igbinary
],
'sid' => $_SERVER['DOCUMENT_ROOT'] . '#01'
],
'readonly' => false,
],
'session' => [
'value' => [
'mode' => 'default',
'handlers' => [
'general' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => '6379'
]
]
],
'readonly' => true,
]
2. Тюнинг PHP 8.2 и OPcache
В файле /etc/php.d/10-opcache.ini и /etc/php.ini задайте параметры, соответствующие объему вашего проекта:
# Конфигурация OPcache для крупного интернет-магазина:
opcache.enable = 1
opcache.memory_consumption = 512
opcache.interned_strings_buffer = 64
opcache.max_accelerated_files = 100000
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
opcache.validate_timestamps = 1
opcache.jit_buffer_size = 128M
opcache.jit = 1255
3. Оптимизация MySQL (InnoDB Buffer Pool)
База данных должна полностью помещаться в оперативную память. Если на сервере 16 Гб RAM, выделите под буфер InnoDB около 10–11 Гб в /etc/my.cnf.d/z_custom.cnf:
[mysqld]
innodb_buffer_pool_size = 10G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
query_cache_type = 0
query_cache_size = 0
max_connections = 250
thread_cache_size = 32
Важно: параметр innodb_flush_log_at_trx_commit = 2 снижает количество синхронных сбросов на диск при транзакциях в корзине, ускоряя оформление заказов до 5 раз.
4. Микрокеширование в Nginx FastCGI
Для неавторизованных пользователей отдавайте страницы каталога из быстрого FastCGI микрокеша на 2–5 секунд:
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=BITRIX:128m inactive=1d max_size=2g;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
# В блоке location php:
fastcgi_cache BITRIX;
fastcgi_cache_valid 200 301 302 5s;
fastcgi_cache_use_stale error timeout updating invalid_header http_500;
fastcgi_cache_bypass $cookie_PHPSESSID $cookie_BITRIX_SM_LOGIN;
fastcgi_no_cache $cookie_PHPSESSID $cookie_BITRIX_SM_LOGIN;
5. Проверка производительности встроенным тестом Битрикс
После перезапуска служб (systemctl restart php-fpm nginx mysqld) перейдите в административную панель: Настройки → Производительность → Панель производительности и запустите тест на 1 минуту.
- Оценка производительности на наших серверах составляет 65–85 баллов (при эталонных 30).
- Время отклика страницы каталога падает до 0.08–0.15 секунды.
Нужна профессиональная настройка сервера BitrixVM?
Оптимизируем ваш сервер под высокие нагрузки, настроим Redis, Nginx и MySQL без риска для рабочих баз данных.