Просмотров: 845 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 18.07.2018
Недоступно в редакциях:
Старт, Стандарт, Малый бизнес, Бизнес

Использование подключения через unix soket к локальным memcache серверам, ускоряет работу проекта. Это возможно с версии 17.0.1 модуля Веб-кластер (cluster).

Ядро обеспечивает валидность кеша на всех нодах, удаляя помеченные ключи кеша на нодах кластера. Данный режим работы кластера очень хорошо себя зарекомендовал в различных нагрузочных тестах и реальной эксплуатации обеспечивая прирост порядка 30%, за счет более быстрой работы с кешем.

Настройка режима работы с локальным кешем

Предположим, есть две ноды на которых настроены роли веб сервера, мемкеша и БД. В этом случае необходимо выполнить следующие шаги:

  1. Настроить memcache на использование веб сокета и модуль веб кластера на работу с мемкашем через сокет.
    • Для настройки memcache на работу с сокетом выполните команду:
      cat /etc/sysconfig/memcached 
      # Ansible managed: /etc/ansible/roles/memcached/templates/sysconfig-memcached.j2 modified on 2015-01-30 19:00:16 by root on bx24.perf
      # memcached settings
      PORT="11211"
      USER="memcached"
      MAXCONN="4096"
      CACHESIZE="512"
      OPTIONS="-t 8 -s /tmp/memcached.sock -a 0777"
    • Для настройки модуля Веб-кластер на работу с мемкашем через сокет указать порт 0 и урл unix:///tmp/memcached.sock
  2. В модуле кластера добавить нужное количество групп.
  3. На каждом сервере определить константы указывающие ID группы, а также включающий режим чтения слайвов из любой группы.
    <?
    define('BX_CLUSTER_GROUP', 1);
    define('BX_CLUSTER_SLAVE_USE_ANY_GROUP', true);
    ?>
  4. Перенести слайв сервера в административную часть БУС, по нужным группам. Для переноса слайв серверов в нужную группу необходимо, отредактировать соответствующие записи в таблице b_cluster_dbnode, установив нужное значение в поле GROUP_ID.
  5. Для переноса серверов memcached в нужную группу, необходимо установить нужное значение ключа GROUP_ID в файле /bitrix/modules/cluster/memcache.php.

После этого сервера начнут работать с локальным кешем через сокет, что значительно быстрее чем работа с удаленными серверами по tcp.


1


Курсы разработаны в компании «1С-Битрикс»