Кластеризация кеша (memcached)

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

Кеш храним в кластере

Для обеспечения максимальной производительности веб-кластера реализовано централизованное, разделяемое между нодами хранилище данных кэша - кэш, созданный в результате ресурсоемких вычислений нодой "А", будет использован нодой "B" и остальными нодами кластера. Чем больше нод, тем больший эффект даст использование централизованного кэша.

Для централизованного и надежного хранения данных кэша используется кластер серверов memcached, который активно используется в таких проектах как Youtube, Facebook, Twitter, Google App Engine.

Для запуска сервера memcached на "1С-Битрикс: Веб-окружение" (Linux) выполните команды:

# chkconfig memcached on
# service memcached start
 

Улучшенная эффективность за счет вытеснения устаревших данных

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

В результате кэш веб-кластера будет автоматически поддерживаться в максимально эффективном состоянии: как по скорости доступа, так и по использованию ресурсов.

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

Улучшенная надежность и масштабируемость

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

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

Безопасность

Необходимо открыть доступ к серверам memcached только для нод веб-кластера путем настройки файервола. При использовании хостинга Amazon Web Services это можно сделать через редактирование параметров группы безопасности (введите параметры, соответствующие вашей конфигурации веб-кластера):


Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

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

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