Что делать если переполняется кеш?
Причин переполнения кеша может быть несколько, не правильно настроены права доступа к папкам в которох хранятся файлы кеша, не правильно настроены компоненты генерирующие кеш, не работающие агенты, сломанный планировщик cron.
Проверка доступов
Первым делом стоит проверить папки где хранится кеш, а именно:
- /bitrix/cache/
- /bitrix/stack_cache/
- /bitrix/html_cache/
Проверку можно осуществить вручную, либо при помощи встроенных инструментов. Для этого в административной панели сайта перейдите в раздел Настройки -> Инструменты -> Проверка системы, вам нужна вкладка «Проверка доступа», запустите полную проверку, если система не сможет получить доступ к ключевым разделам, в отчёте появятся адреса файлов и папок доступ к которым необходимо изменить.
Если система по какой-то причине не может выполнить тест, такую проверку можно осуществить вручную при помощи FTP менеджера. Права на файлы должны быть 0644, на папки 0755.
Проверка настройки компонентов
Ещё одной распространённой проблемой, является не верно настроенное кеширование компонентов. Рекомендуемый тип кеширование «Авто + управляемое», рекомендуемое время кеширования от 10 до 40 часов. Некоторые программисты могут просто напечатать несколько лишних нулей в параметрах кеширования. В моей практике был случай когда коллеги ошиблись и указали кеш в 36 миллионов секунд, а это ~14 месяцев. Естественно кеш за это время скопился просто гигантский, порядка 100 гигабайт.
Если файлов кеша скопилось много, а по какой-то причине не удаётся снести их все, можно написать небольшую функцию агента, запускать её раз в 30 минут/1 час и она вычистит весь кеш в течении недели, при этом не создавая большой нагрузки на сайт. Естественно перед этим нужно корректно настроить время кеширования в компонентах.
Функцию необходимо добавить в файл init.php, а так же создать агента в списке агентов. Рекомендуется так же перевести работу агентов на cron.
/** * Агент, очистка устаревшего кеша * @return string */ function clearExpiredCacheFiles() < if (!class_exists('CFileCacheCleaner')) < require_once ($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/classes/general/cache_files_cleaner.php'); >$curentTime = mktime(); $endTime = time() + 5; $path = ''; //Работаем с устаревшим кешем $obCacheCleaner = new CFileCacheCleaner('expired'); if (!$obCacheCleaner->InitPath($path)) < \CEventLog::Add([ 'SEVERITY' =>'ERROR', 'AUDIT_TYPE_ID' => 'clearExpiredCacheFiles', 'MODULE_ID' => 'main', 'ITEM_ID' => __CLASS__, 'DESCRIPTION' => 'Неверный путь к файлу кеша', ]); > $obCacheCleaner->Start(); while ($file = $obCacheCleaner->GetNextFile()) < if (is_string($file)) < $date_expire = $obCacheCleaner->GetFileExpiration($file); if ($date_expire) < if ($date_expire < $curentTime) < unlink($file); >> if (time() >= $endTime) break; > > return 'clearExpiredCacheFiles();'; >
Для удобства контроля размера папок с кешем можно использовать следующие SSH компанды:
du -hs * | sort -hr
Проверка файлов result_modifier.php
Некоторые программисты только начинающие работать с 1С Битрикс, иногда в файле result_modifier.php вытаскивают их БД огромное количество информации, которая в последствии нигде не используется. В битриксе есть такой метод как SetResultCacheKeys() который позволяет кешировать только то, что необходимо.
Следует проверить все файлы result_modifier.php компонентов используемых на сайте на наличие этого метода, если его нет, нужно детально проанализировать код, чтобы понять что в конечном итоге попадает в кеш компонента, если там есть что-то лишнее (данные которые не используются в шаблоне и файле component_epilog.php) — необходимо оптимизировать код. Общий вид кода при использовании SetResultCacheKeys() выглядит так:
/*Что-то получаем в result_modifier.php и сохраняем в $arResult["DATA"]*/ $arResult["DATA"] = $data; //$data - это ранее полученные данные $this->__component->SetResultCacheKeys(["DATA"]);
Заключение
Самый лучший способ не сталкиваться с проблемой с кешем — профилактика и тестирование проекта при сдаче. Для этого в 1С Битрикс есть встроенные средства проверки качества + ваши прямые руки. Желаю удачи!
Кеширование
На странице Монитор производительности: кеширование (Настройки > Производительность > Кеширование) можно просмотреть информацию о кеше и его файлах.
Фильтр
| Поле | Описание |
|---|---|
| Найти | Позволяет найти записи о кеше по названию компонента или идентификатору хита. |
| Компонент | Позволяет найти записи по названию компонента. |
| Модуль | Позволяет найти записи по названию модуля. |
| Хит | Позволяет найти записи по идентификатору хита. |
| Экземпляр компонента | Позволяет найти записи по экземпляру компонента, который отработал на определенном хите (служебное поле, используется при переходе с других страниц модуля, например хиты). |
| Операция | Позволяет найти записи по типу операции с файлом кеша. |
| Тип | Позволяет найти записи по типу кеша (служебное поле; /bitrix/managed_cache/ — управляемый кеш, /bitrix/cache/ — неуправляемый). |
| Каталог | Позволяет найти записи по каталогу, в котором хранятся файлы кеша. |
| Файл | Позволяет найти записи по имении файла кеша. |
Контекстная панель
- Без группировки — отображается вся информация о кеше, без каких-либо группировок;
- Группировка по компонентам — информация о кеше сгруппирована по названию компонентов;
- Группировка по типу — информация о кеше сгруппирована по типу кеша (управляемый / неуправляемый);
- Группировка по каталогу — информация о кеше сгруппирована по каталогам, в которых хранятся файлы кеша;
- Группировка по файлу — информация о кеше сгруппирована по файлам, в которых хранятся кеш.
Kеш
| Поле | Описание |
|---|---|
| ID | Идентификатор записи о кеше. |
| Хит | Идентификатор хита. |
| Компонент | Название компонента, с которым связана запись о кеше. |
| Модуль | Название модуля, с которым связана запись о кеше. |
| Размер | Размер файла кеша в байтах. |
| Операция | Тип операции с файлом кеша. |
| Тип | Тип кеша. |
| Каталог | Каталог, в которых хранятся файлы кеша. |
| Файл | Название файла, в котором хранится кеш. Ссылка с названием позволяет перейти к просмотру содержимого этого файла. |
| Путь к файлу кеша | Путь к файлу кеша. |
Новинки документации в соцсетях:
Форум
поставил bitrix:news.list
без кеширование http://prntscr.com/4jja4l
при кеширование http://prntscr.com/4jja9f
то есть кеширование происходит , где данные хранятся? папка /bitrix/cache пуста!
может идет переопределение папки /bitrix/cache? возможно ли это?
Постоянный посетитель
Сообщений: 349 Баллов: 32 Регистрация: 13.07.2012
04.09.2014 18:20:18
Если включен ускоритель то см. сдн, кэш идет оттуда
Сообщений: 3754 Баллов: 320 Регистрация: 17.02.2010
04.09.2014 18:42:52
причем тут cdn кеш может хранится в различных кешерах/акселераторах типа memcache/apc/xcache итд.
Сообщений: 572 Баллов: 91 Регистрация: 05.06.2012
05.09.2014 11:21:44
| Цитата |
|---|
| Денис Диденко пишет: причем тут cdn кеш может хранится в различных кешерах/акселераторах типа memcache/apc/xcache итд. |
а как обоатно откатать? и где это делается?
Постоянный посетитель
Сообщений: 349 Баллов: 32 Регистрация: 13.07.2012
05.09.2014 13:33:51
| Цитата |
|---|
| Денис Диденко пишет: причем тут cdn |
у меня был глюк именно из-за этого несколько раз, ведь по сути сдн тоже кэш
| Цитата |
|---|
| Денис Диденко пишет: кеш может хранится в различных кешерах/акселераторах типа memcache/apc/xcache итд. |
а вот это точно ни причем, если бы кэш хранился в акселераторах, то и управлять им нужно из акселераторов, а не типовой настройкой битрикса управление кэшем
Сообщений: 572 Баллов: 91 Регистрация: 05.06.2012
05.09.2014 17:35:56
| Цитата |
|---|
| Николай Подымов пишет: то и управлять им нужно из акселераторов |
как управлять? напрмер сбросить кеш?
Страницы: 1
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507

© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Как хранится кеш файловый кеш Битрикс, вплоть до отдельных компонентов?

- 1С-Битрикс
Можно ли переименовать название стандартной подписи поля «Название» для инфоблока?
- 1 подписчик
- 16 часов назад
- 18 просмотров

- 1С-Битрикс
Не видно кнопок добавления фото в визуальном редакторе битрикс. Как исправить не залезая в ядро?
- 1 подписчик
- 19 часов назад
- 18 просмотров

- PHP
- +1 ещё
Вывод у определенного товара информации про активные группы пользователей из «Права доступа к элементу»?
- 1 подписчик
- вчера
- 30 просмотров

- 1С-Битрикс
- +1 ещё
Как экспортировать товары и заказы из 1С-Битрикс в 1С?
- 1 подписчик
- вчера
- 22 просмотра

- 1С-Битрикс
- +1 ещё
Как можно в bitrix 24 ограничить доступ пользователям только в раздел чаты?
- 1 подписчик
- 17 нояб.
- 16 просмотров

- 1С-Битрикс
Как добавить информацию об отгрузке (Дополнительные услуги) в почтовый шаблон заказа Битрикс?
- 1 подписчик
- 17 нояб.
- 10 просмотров

- 1С-Битрикс
Как фильтровать товары?
- 2 подписчика
- 16 нояб.
- 64 просмотра

- 1С-Битрикс
Как в битриксе использовать маршруты?
- 1 подписчик
- 16 нояб.
- 61 просмотр

- 1С-Битрикс
- +1 ещё
Как в Bitrix VM обновить сертификат?
- 1 подписчик
- 16 нояб.
- 27 просмотров

- 1С-Битрикс
Где настраивается шаблон стандартной формы авторизации?
- 1 подписчик
- 15 нояб.
- 35 просмотров
ICONICA SITE • Санкт-Петербург
от 70 000 до 120 000 ₽
от 80 000 до 120 000 ₽
от 120 000 ₽
19 нояб. 2023, в 23:12
55555 руб./за проект
19 нояб. 2023, в 20:35
4000 руб./за проект
19 нояб. 2023, в 20:11
500 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Не могу настроить почтовый сервер(Postfix/Dovecot с интеграцией в MS Active Directory) на alt linux. Может у кого-то есть решение?
- 3 подписчика
- 1 ответ
- 3 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 3 подписчика
- 2 ответа
- 2 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 3 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ