Нагрузоустойчивость

Протестировано РосАтомом!
В начале 2018 года специалисты госкорпорации РосАтом подтвердили высокие характеристики DIAFAN.CMS. Подробнее о тестировании.

DIAFAN.CMS всегда славилась скоростью работы, непритязательностью к хостингу и малым размером дистрибутива. Система показывала высокие результаты при внутреннем тестировании, и теперь это подтверждается независимыми источниками.

Нагрузоустойчивость 1 тур

В ноябре 2014 года на портале CMSMagazine были опубликованы результаты исследования, проведенного специалистами нагрузочного сервиса loaddy.com. По его результатам DIAFAN.CMS заняла первое место, как самая нагрузоустойчивая.

Результаты первого тура нагрузочного тестирования DIAFAN.CMS

Участники тестирования, в лице представителей разных CMS, высказывали некоторые замечания, критикуя методологию проведения тестов, но в главном отмечали, что для высоких нагрузок каждая система должна оптимизироваться и настраиваться. Поэтому было решено провести второй тур нагрузочного тестирования с учетом пожеланий участников, и более того, позволить участникам настроить свои системы по своему усмотрению.

Нагрузоустойчивость 2 тур

В апреле был проведен второй тур, до начала которого каждая CMS оптимизировала систему на отдельно выделенном сервере. Забегая вперед, во втором туре DIAFAN.CMS также заняла первое место, однако, результативность была на порядок выше первого тура. Результаты второго тура

Результаты второго тура нагрузочного тестирования DIAFAN.CMS

Благодаря тому, что во втором туре нагрузочного тестирования специалисты DIAFAN.CMS получили в свое распоряжение доступ к серверу под нагрузкой, а сервис loaddy.com обеспечивал «посещаемость» в 1000 одновременных посетителей, в систему DIAFAN.CMS был разработан и внедрен функционал «Экстремального кеширования».

Результат работы нового кеширования DIAFAN.CMS, получившее название «экстремальное», удивил даже видавших виды администраторов сервиса loaddy.com

Если без «экстремального кеширования» DIAFAN.CMS с трудом выдерживает до 500 одновременных посетителей (что, тем не менее, является лучшим результатом среди других CMS в первом туре) со временем ответа 3,89 секунды.

Первый тур нагрузочного тестирования DIAFAN.CMS

То во втором туре «экстремальное кеширование» позволяет выдерживать нагрузки в 1000 человек со временем ответа 0.4 секунды!

Второй тур нагрузочного тестирования DIAFAN.CMS

Это говорит о том, что DIAFAN.CMS при 1000 одновременных посетителях чувствует себя совершенно легко и практически не нагружает хостинг.

Алгоритм «Экстремального кеширования»

Конечно, у «экстремального кеширования» есть минусы, и для «живого» активного частообновляемого сайта этот параметр к постоянному использованию не рекомендуется. Но как инструмент серьёзного снижения нагрузки на хостинг при всплесках посещаемости подойдет.

Чтобы понимать принцип работы «экстремального кеширования», нужно знать, как работает обычное кеширование в DIAFAN.CMS. Вкратце, DIAFAN.CMS сохраняет в папке /cache/ в виде статичных файлов участки сайта, которые затем использует при построении сайта. Это только некоторые участки: блоки сайта, блоки модулей, списки веток комментариев и т.д.

Что же начинает происходить при включении «экстремального кеширования»? В ядре DIAFAN.CMS активируется проверка, есть ли запрашиваемая посетителем страница в экстремальном кеше? Если да, то она безусловно выводится и остановка. Если запрашиваемого адреса в кеше нет, страница сайта генерируется классически, но её полная копия сразу кладется в кеш в статическом виде. Полностью. Т.е. если кто-то однажды открыл страницу какой-либо карточки товара, то она попадает в экстремальный кеш, и затем всем остальным пользователям будет показываться оттуда. Соответственно, один раз страница генерируется как обычно, с полной нагрузкой на хостинг, остальные 999 раз уже нет. Она будет грузиться как статичный HTML-файл, без нагрузки на mySQL-сервер и хостинг.

Если на странице, которая сохранена в кеше, что-то обновляется, например, добавляется комментарий, эта страница из экстремального кеша удаляется, чтобы затем сгенерироваться заново. Очистка экстремального кеша происходит также всякий раз, когда администратор сайта что-то делает в административной части. Добавляет товар, новость, отвечает на вопрос-ответ - экстремальный кеш удаляется и затем формируется новый. В этом и смысл «экстремального кеширования»: если из 1000 посетителей 99% - гости, которые просто смотрят тексты, карточки товаров и прочие популярные страницы, то им незачем каждый раз формировать страницу с использованием всех ресурсов сервера.

Теперь о минусах «экстремального кеширования». Если покупатель положит товар в корзину, он это сразу увидит "В корзине 1 товар" - сработает ajax. Однако, когда покупатель перейдет на другу карточку товара, он снова увидит в блоке корзины "Нет товаров", ведь кеш формировался для общей страницы карточки. При этом, страница оформления заказа, которая имеет адрес site.ru/shop/cart/?544548(случайным образом генерируемый url), открываться будет актуальной, ведь этой страницы в кеше нет. Поэтому корзину система сгенерирует налету, со всеми подключениями и пользователь спокойно оформит заказ.

Поэтому постоянное использование параметра «Экстремальное кеширование» на сайтах с форумами, личными кабинетами, перепиской и активным общением пользователей между собой, а также интернет-магазинов, где оформляется несколько товаров в заказе, не рекомендуется.

Включить параметр «Экстремальное кеширование» можно в модуле «Параметры сайта».