Оптимизация производительности CMS Битрикс
Если вы задумываетесь о повышении производительности вашего сайта на CMS Битрикс, то первым шагом будет перенос сайта на сервер с Bitrix7. Создание сервера с системой Bitrix7 доступно через вашу панель управления.
Вы можете сделать перенос самостоятельно или воспользоваться помощью наших специалистов.
Настройка CMS
После переноса сайта, можно приступать к настройке CMS.
- Убедитесь, что в разделе «Проверка системы» отсутствуют записи с ошибками.
- Проверьте раздел «Панель производительности» во вкладке «Битрикс». Здесь должно быть выбрано значение — «Битрикс (оптимально)».
- Измените тип таблиц базы данных на InnoDB и выполните оптимизацию базы данных. Для начала, создайте резервную копию данных.
Настройка сервера
Далее, перейдем к настройке сервера.
- Подключитесь к серверу по SSH, используя учетные данные пользователя root.
- Запустите меню виртуального окружения Битрикс с помощью следующей команды:
~/menu.sh
- Выберите опцию 4 «Configure memcached servers».
- Начнется установка memcached. В процессе установки потребуется указать hostname вашего сервера. Укажите значение ServerName, отображаемое в таблице на экране.
- По завершении установки, настройте конфигурационный файл /etc/sysconfig/memcached.
Откройте файл в текстовом редакторе, например, используя nano:
nano /etc/sysconfig/memcached
Если nano отсутствует, вы можете установить его с помощью команды yum install nano, либо использовать другой редактор, который уже установлен на сервере, например, vim.
Установите следующие параметры:
# Максимальное количество одновременных подключений (по умолчанию 1024)
MAXCONN = "1024"
# Объем выделенной памяти для кэша (по умолчанию 64MB)
CACHESIZE = "1024"
# Количество потоков memcached
OPTIONS = "-t 4"
Сохраните внесенные изменения.
- Перезапустите службу с помощью следующей команды:
systemctl restart memcached.service
- В файле /bitrix/php_interface/dbconn.php добавьте подключение к memcached. Для этого выполните следующую команду:
nano /путь_к_каталогу_сайта/bitrix/php_interface/dbconn.php
Замените путь_к_каталогу_сайта на корректный путь для вашей системы и добавьте следующие параметры в файл:
define("BX_CACHE_TYPE", "memcache");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
define("BX_MEMCACHE_HOST", "127.0.0.1");
define("BX_MEMCACHE_PORT", "11211");
Сохраните внесенные изменения.
- Откройте файл /bitrix/.settings_extra.php (если файл не существует, выполните ту же команду, чтобы создать его):
nano /путь_к_каталогу_сайта/bitrix/.settings_extra.php
Добавьте следующие параметры в файл:
<?php
return array(
'cache' => array(
'value' => array(
'type' => 'memcache',
'memcache' => array(
'host' => '127.0.0.1',
'port' => '11211',
),
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
),
);
?>
Сохраните внесенные изменения.
Пожалуйста, обратите внимание, что неправильная настройка memcached может негативно сказаться на производительности. Если вы замечаете снижение производительности, вы можете провести эксперименты с значениями в конфигурационном файле /etc/sysconfig/memcached, который был настроен на шаге 5.
- Чтобы улучшить производительность сайта, помимо включения memcached, можно переместить каталог для временных файлов MySQL на RAM-диск.
Для выполнения этой операции, следуйте этим шагам:
9.1. Создайте каталог для временных файлов, например, /var/lib/mysql/tmp:
mkdir /var/lib/mysql/tmp
9.2. Измените владельца каталога и группу на mysql:
chown mysql:mysql /var/lib/mysql/tmp
9.3. Определите идентификатор пользователя (uid) и группы (gid) для mysql:
id mysql
9.4. Отредактируйте файл /etc/fstab:
nano /etc/fstab
Вставьте в конец файла строку с указанием значений, полученных на предыдущем шаге:
tmpfs /var/lib/mysql/tmp tmpfs rw,gid=27,uid=27,size=1G,nr_inodes=10k,mode=0700 0 0
Значение параметра size следует установить в зависимости от доступной оперативной памяти.
9.5. Монтируйте новый раздел tmpfs:
mount /var/lib/mysql/tmp
9.6. Внесите изменения в файл конфигурации MySQL /etc/mysql/my.cnf и добавьте следующую строку:
tmpdir=/var/lib/mysql/tmp
9.7. Перезапустите службу MySQL:
systemctl restart mysqld
- Добавьте параметр в файл /etc/mysql/conf.d/z_bx_custom.cnf:
innodb_flush_log_at_trx_commit = 0
Этот параметр позволяет использовать отложенные транзакции.