Динамическое кэширование
- Используемый кэширующий механизм - какой кэширующий механизм подключен;
- Статус кэширования - статус работы кэша;
- Размер кэша - сколько занимает кэш (вычисляется только способов кэширования "Файловая система" и "База данных";
- Ограничение на размер кэша - максимально значение размера кэша. При его достижении кэш сбрасывается. Задает в config.ini, в секции [cache] - cache-size-limit;
- Список доступных кэширующих механизмов - какие механизмы можно подключить на текущем хостинге;
Начиная с версии 2.7, варианты кэширования расширены и теперь в качестве кэширующего бекэнда можно использовать один из следующих вариантов:
• |
база данных (с версии 2.11); |
• |
Redis (с версии 2.14); |
• |
memcache; |
• |
memcached (с версии 2.17); |
• |
файловая система (с версии 2.8). |
Внимание: При необходимости подключить механизм memcached с отличными от стандартных (хост = "localhost", порт = "11211") параметрами подключения (в том числе подключить через unix-сокет), необходимо задать эти параметры в config.ini, секция [caсhe].
Если хотя бы один из перечисленных вариантов доступен на сервере, то он автоматически выбирается в качестве текущего бекэнда (приоритет выбора соответствует порядку перечисления). Использование такого кэширования наиболее предпочтительно, так как значительно повышает производительность и не вызывает никаких функциональных изменений.
По нашему мнению, на данный момент Redis является самым эффективным вариантом кэширования, поэтому рекомендуется требовать у хостера именно этот вариант.
Файловый кэш хранится в директории ~/sys-temp/runtime-caсhe/fs-cache/, бд кэш хранится в таблице `cms3_data_cache`.
Если хотя бы один из вариантов динамического кэширования доступен, вы можете установить кэширование протоколов для XSLT-шаблонизатора и кэширование макросов для PHP-шаблонизатора. Для этого в списке доступных кэширующих механизмов выберите нужный и нажмите Сохранить. Появится параметр "Кэширование макросов и протоколов для XSLT и PHP шаблонизаторов". После выставления галочки Включено и нажатия на Сохранить появится параметр Время жизни кэша (в секундах).
Методы, протоколы и типы сущностей (lang, domain, etc.) которые не нужно кэшировать, вы можете указать в config.ini, секция [caсhe].
Статическое кэширование
Для ускорения работы сайта при высоких нагрузках мы разработали систему статического кэширования. Ее суть вкратце такова: при первом обращении пользователя к странице её содержимое сохраняется в файле, после чего при следующем обращении к этой странице происходит запрос не к базе данных, а к этому файлу. Это, как правило, значительно уменьшает время отображения страниц.
Время хранения кэша определяет, сколько времени будет хранится файловая копия страницы. При редактировании содержимого страницы в административной панели кэш обновляется автоматически.
Статический кеш используется только для неавторизованных пользователей.
Статический кэш можно периодически очищать, настроив выполнение файла cron.php на сервере.
По умолчанию статический кэш хранится в директории /sys-temp/static-cache/, схема формирования путей до файлов следующая:
При запросе страницы:
http://domain.ru/shop/dvd_tehnika/dvd_rekordery
ее кеш будет лежать в директории:
/sys-temp/static-cache/domain.ru/shop/dvd_tehnika/dvd_rekordery/index.html.
Система позволяет создавать отдельный статический кеш для мобильных устройств. Эту настройку можно включить в файле config.ini. Такой кэш будет храниться в директории /sys-temp/static-cache/mobile/.
Внимание: Внесение изменений в шаблоны дизайна не влияет на обновления кэша, для того, чтобы изменения проявились, необходимо отключить кэширование и очистить содержимое папки ~/sys-temp/static-cache/.
Внимание: Не рекомендуется включать в процессе разработки!
Тестирование
Оценить производительность системы — функция, позволяющая протестировать производительность UMI.CMS на данном хостинге. Показывает количество страниц, сгенерированных за секунду. Соответственно, чем это количество больше, тем выше производительность.
Показатели load average — выводит значение метрики load average, которое говорит о среднем числе процессов в очереди на исполнение в определенный временной интервал - 1 минута, 5 минут и 15 минут. Высокие значения показателей «load average» (более единицы) говорят о том, что система не справляется с нагрузкой.
Подробнее о работе с производительностью статьи вы можете прочитать в специальной статье.