Столкнулся с проблемой разрастания кэша из-за меню. Кэш меню занимает больше гига, но при этом состоит только из двух разных файлов под разными именами, один 1.2 кб размером, второй 430 байт размером. Соответственно меню первого и второго уровня. И вот таких файлов очень много, больше гига получается. Что удивительно, само меню-то на всем сайте одинаково, только в 5 разделах второго уровня появляются разные меню второго уровня. Я логично предполагал, что и кэша будет столько же, сколько изменений в меню вносится, то есть в лучшем случае десяток.
Посмотрел код bitrix:menu, а там cache_id формируется следующим образом:
Код |
---|
$strCacheID = $APPLICATION->GetCurPage().
":".$arParams["USE_EXT"].
":".$arParams["MAX_LEVEL"].
":".$arParams["ROOT_MENU_TYPE"].
":".$arParams["CHILD_MENU_TYPE"].
":".LANG.
":".SITE_ID.
""
; |
Получается вся проблема в наличии $APPLICATION->GetCurPage() - он на каждой странице разный. А страниц на сайте больше 100 тысяч (почти все формируются по ЧПУ). Как жить с этим?