Локальный кеш в кластере

Урок 217 из 267
Автор: Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Дата изменения: 21.11.2019
Просмотров: 4186
Ограничения по редакциям: Старт, Стандарт, Малый бизнес, Бизнес

Ускоряем работу с кешем

Использование подключения через unix soket к локальным memcache серверам, ускоряет работу проекта. Ядро обеспечивает валидность кеша на всех нодах, удаляя помеченные ключи кеша на них. Такой режим работы кластера очень хорошо себя зарекомендовал в различных нагрузочных тестах и реальной эксплуатации, обеспечивая прирост порядка 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"
    • Для настройки модуля Веб-кластер на работу с мемкашем через сокет указать В случае, если в проекте планируется использовать memcached, необходимо произвести его настройку в соответствии с предполагаемой нагрузкой.

      Подробнее ...
      порт 0 и урл unix:///tmp/memcached.sock
  2. В модуле кластера добавить Группы - сущность созданная только для удобства работы. Они используются для объединения "узлов" в рамках гео-кластера. Это позволяет расположить в различных географически расположенных дата-центрах собственные: Cервера баз данных, Memcached-сервера, Веб-сервера.

    Подробнее ...
    нужное количество групп.
  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С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас