316  /  382
Справочник

Проблемы при кешировании меню

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

Большой размер папки с кешем меню

Ситуация. Выявлен большой размер папки bitrix/managed_cache/MYSQL/menu: 1.9 Gb. На сайте 4 типа сквозных меню, страниц на сайте много. В чём проблема и что делать?

Причина. На каждую страницу создаётся 1 файл кэша по каждому типу используемого меню. Кроме того, если еще задано кеширование для разных групп, то умножьте это число на количество таких групп. То есть, для каждой страницы у вас будет 4 файла кэша меню (если по группам - умножайте на количество групп). Поэтому такой размер вполне может быть.

Само по себе такое количество файлов не страшно, если место на диске достаточно. Проблема в том, что акселератор (в нашем случае APC) складывает эти файлы в кеш и кеш переполняется.

Решение: Исключить файловый кэш из акселератора, убедившись, что в template.php и result_modifier.php нет запросов и тяжелых вычислений. В файлах menu_ext запросы должны кешироваться.

apc.filters="-/bitrix/cache,-/bitrix/managed_cache/,-/upload/"

Примечание: Если на сайте меню одного типа в подпапках не переопределяется, то можно при подключении меню указать параметр:
"CACHE_SELECTED_ITEMS" => "N",
Это приведет к тому, что при создании файла кеша меню в ключе не будет участвовать url. А расчет выбранного уровня будет происходить после получения данных из кеша.


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

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии