Улучшение эффективности системы управления контентом Битрикс
Если вы думаете о увеличении эффективности вашего веб-сайта на CMS Битрикс, первым шагом стоит рассмотреть перенос сайта на сервер с Bitrix7. Создание сервера с Bitrix7 доступно через вашу панель управления.
Перенос можно осуществить самостоятельно либо прибегнуть к помощи наших экспертов. Все подробности можно найти в статье о Переносе сайта на сервер.
Настройка CMS
После переноса сайта можно начать настройку системы управления контентом.
- В разделе "Проверка системы" не должно быть записей с ошибками.
- В разделе "Панель производительности" во вкладке "Битрикс" значение должно быть "Битрикс (оптимально)".
- Измените тип таблиц базы данных на InnoDB и выполните оптимизацию базы данных. Рекомендуется предварительно создать резервную копию.
Настройка сервера
Далее можно перейти к конфигурации сервера.
1. Подключитесь к серверу через SSH, используя учетные данные пользователя root.
2. Запустите меню виртуального окружения Битрикс с помощью команды:
~/menu.sh
3. Выберите пункт 4 "Configure memcached servers".
4. Произойдет начало установки memcached. В процессе установки система попросит вас ввести hostname вашего сервера. Вам необходимо указать значение ServerName из таблицы, которая будет выведена на экран.
5. По завершению установки настройте файл конфигурации /etc/sysconfig/memcached.
Откройте файл конфигурации в текстовом редакторе, например, nano:
nano /etc/sysconfig/memcached
Если у вас отсутствует nano, вы можете установить его с помощью команды yum install nano или использовать другой доступный редактор (например, vim).
Задайте следующие параметры:
# количество одновременных подключений (по умолчанию 1024)
MAXCONN="1024"
# объем выделяемой памяти для кэша (по умолчанию 64MB)
CACHESIZE="1024"
# количество потоков memcached
OPTIONS="-t 4"
Сохраните внесенные изменения.
6. Перезапустите службу с помощью команды:
systemctl restart memcached.service
7. Подключите memcached в файле /bitrix/php_interface/dbconn.php. Для этого откройте данный файл:
nano /путь_к_каталогу_сайта/bitrix/php_interface/dbconn.php
Замените путь_к_каталогу_сайта на фактический путь к каталогу вашего сайта.
Укажите в файле следующие параметры:
Откройте файл /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");
Сохраните внесенные изменения.
8. Откройте файл /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, который был настроен на предыдущем шаге.
9. Кроме включения memcached, улучшение производительности сайта можно достичь, переместив каталог для временных файлов MySQL на RAM-диск. Для этого следуйте этим шагам:
9.1. Создайте папку для хранения временных файлов MySQL, например /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
10. В файле /etc/mysql/conf.d/z_bx_custom.cnf добавьте параметр:
innodb_flush_log_at_trx_commit = 0
Этот параметр позволяет использовать отложенные транзакции.