Просмотров: 12342 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 22.05.2019
Роберт Басыров
Сложность урока:
1 уровень - интуитивно все понятно из интерфейса, но почитать стоит.
1
2
3
4
5
Недоступно в редакциях:
Старт, Стандарт, Малый бизнес, Бизнес

Кеш в оперативной памяти

memcached сервер - сервер, позволяющий сохранять кеш не в файлах, а в оперативной памяти. memcached можно использовать и для хранения сессий.

Использование нескольких memcached-серверов:

  • повышает надежность системы за счет устойчивости подсистемы кеширования к выходу из строя отдельных компонентов,
  • повышает эффективность за счет централизованного использования кеша веб-приложением,
  • обладает неограниченной масштабируемостью за счет добавления новых memcached-серверов.

Если произошёл отказ всех memcached-серверов, то подсистема кеширования снова начинает использовать файловый кеш После возврата к файловому кешу рекомендуется удалить старый, неактуальный файловый кеш bitrix\cache bitrix\stack_cache. .

Внимание! Для работы потребуется php расширение memcache.

Некоторые версии расширения memcache имеют ошибку, приводящую к значительному снижению производительности при наличии более одного подключения. С помощью панели производительности получите оценку производительности до добавления подключения и после. При наличии значительной разницы попробуйте установить другую версию расширения memcache.

Если используется несколько memcache-серверов, нужно установить значение переменной memcache.hash_strategy string в consistent (по умолчанию это выключено!). Такое значение нужно для следующего: если один из мемкэшей сломается, начнется ресурсоемкая операция перетасовки ключей между мемкэшами, замедляющая работу веб-кластера. А если установить в consistent - проблем практически не будет.

Примечание: «1С-Битрикс: Веб-окружение» для Linux уже содержит сервер memcached. Для его запуска необходимо выполнить команды:
chkconfig memcached on
service memcached start

Подключение серверов memcached

Сервера подключают на странице Подключения к memcached (Настройки > Веб-кластер > [_название_группы_] > Memcached):

  • Нажмите кнопку Добавить на контекстной панели и в форме Настройка параметров подключения к серверу memcached Обычно по умолчанию порт memcached сервера равен 11211

    Настройка параметров подключения к серверу memcached
    укажите адрес и порт сервера.

    Примечание: Если подключаемые к кластеру memcached серверы разной мощности или с разным объемом оперативной памяти, то желательно соответственно настроить коэффициент их использования через настройку параметра Процент распределения нагрузки (0..100).

  • После подключения сервер по умолчанию не будет активным.

  • Для запуска его в работу в меню действий выберите пункт Начать использовать .

Теперь сервер используется вместо файлового кеша:

Примечание: Настройки подключения серверов memcached хранятся в файле \bitrix\modules\cluster\memcache.php. Соответственно любые изменения настроек подключения будут автоматически применены на остальные ноды кластера при настроенной файловой синхронизации в кластере.

Рекомендации по настройке

При настройке подсистемы кластерного кеширования обратите внимание на параметр: get_hits: #count# (#hitrate#%) где, #hitrate# - показывает эффективность кеширования. Это значение надо довести как можно ближе к 100%.

Экспериментально отрегулируйте эффективность, постепенно увеличивая объем памяти, выделяемой серверу memcached (limit_maxbytes). Начините с объема памяти в 128MB и увеличивайте с шагом в 32MB, пока #hitrate# перестанет заметно увеличиваться.

Также рекомендуется периодически анализировать и использование кеша приложением (параметр using_bytes).

За счет использования в сервере memcached алгоритма LRU в кеше будут храниться только наиболее актуальные данные, а редко используемые - вытесняться. Это не позволит объему кеша безгранично разрастаться в размерах, что приводило не только к неэффективному использованию ресурсов системы, но и отрицательно сказывалось на скорости работы с кешем за счет роста его объема. В результате кеш веб-кластера будет автоматически поддерживаться в максимально эффективном состоянии: как по скорости доступа, так и по использованию ресурсов.

Примечание: Константа BX_CLUSTER_GROUP должна быть установлена в файле dbconn.php. В противном случае не будет работать Композитный сайт Скорость отображения страниц сайта, создаваемых с помощью CMS, на данный момент - одна из основных проблем сайтостроения. От этой скорости многое зависит. Современного пользователя уже не устраивают страницы, открывающиеся более 1 секунды, он предпочтёт более быстрые сайты конкурентов.

Подробнее ...
.

Дополнительно


8


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