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

На главную

61c46507-12c7-4300-a301-bd8bc30c7c19 Инструкции для серверов

Повышение производительности CMS Битрикс

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

Вы можете выполнить перенос самостоятельно или обратиться к нашим специалистам. Все подробности можно найти в статье Перенос сайта на сервер.

Настройка CMS

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

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

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

Далее можно перейти к настройке сервера.

  1. Подключитесь к серверу по SSH с реквизитами пользователя root.
  2. Запустите меню виртуального окружения Битрикс командой:
~/menu.sh
  1. Выберите пункт 4 «Configure memcahed 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. Подключите memcached в файле /bitrix/php_interface/dbconn.php. Для этого откройте файл:
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

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

Была ли статья полезна?

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону