Помощь

Оптимизация производительности CMS Битрикс

Если вы задумываетесь о повышении производительности вашего сайта на CMS Битрикс, то первым шагом будет перенос сайта на сервер с Bitrix7. Создание сервера с системой Bitrix7 доступно через вашу панель управления.

Вы можете сделать перенос самостоятельно или воспользоваться помощью наших специалистов.

Настройка CMS

После переноса сайта, можно приступать к настройке CMS.

  1. Убедитесь, что в разделе «Проверка системы» отсутствуют записи с ошибками.
  2. Проверьте раздел «Панель производительности» во вкладке «Битрикс». Здесь должно быть выбрано значение — «Битрикс (оптимально)».
  3. Измените тип таблиц базы данных на InnoDB и выполните оптимизацию базы данных. Для начала, создайте резервную копию данных.

Настройка сервера

Далее, перейдем к настройке сервера.

  1. Подключитесь к серверу по SSH, используя учетные данные пользователя root.
  2. Запустите меню виртуального окружения Битрикс с помощью следующей команды:
~/menu.sh
  1. Выберите опцию 4 «Configure memcached servers».
  2. Начнется установка memcached. В процессе установки потребуется указать hostname вашего сервера. Укажите значение ServerName, отображаемое в таблице на экране.
  3. По завершении установки, настройте конфигурационный файл /etc/sysconfig/memcached.

Откройте файл в текстовом редакторе, например, используя nano:

nano /etc/sysconfig/memcached

Если nano отсутствует, вы можете установить его с помощью команды yum install nano, либо использовать другой редактор, который уже установлен на сервере, например, vim.

Установите следующие параметры:

# Максимальное количество одновременных подключений (по умолчанию 1024)
MAXCONN = "1024"

# Объем выделенной памяти для кэша (по умолчанию 64MB)
CACHESIZE = "1024"

# Количество потоков memcached
OPTIONS = "-t 4"

Сохраните внесенные изменения.

  1. Перезапустите службу с помощью следующей команды:
systemctl restart memcached.service
  1. В файле /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");

Сохраните внесенные изменения.

  1. Откройте файл /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.

  1. Чтобы улучшить производительность сайта, помимо включения 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
  1. Добавьте параметр в файл /etc/mysql/conf.d/z_bx_custom.cnf:
innodb_flush_log_at_trx_commit = 0

Этот параметр позволяет использовать отложенные транзакции.

Остались вопросы - пишите