Тестируем технологию CDN от 1С-Битрикс

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использования этого модуля, произведя серию замеров времени загрузки одной из страниц конкретного сайта.

Методика тестирования

Для измерений использовался браузер FireFox с установленными плагинами FireBug и NetExport. FireBug на странице Net показывает общее время загрузки страницы сайта и отдельных ее частей. Плагин NetExport позволяет автоматически сохранять эту информацию в файлы в формате JSON для дальнейшего анализа.

Объектом тестирования выступила главная страница сайта bxtemplates.ru. Она загружалась по 100 раз с использованием CDN и без него.

Чтобы не нажимать f5 руками в браузере, в header.php шаблона был добавлен мета-тэг

<meta http-equiv="refresh" content="5" />

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

Для того, чтобы FireFox не кэшировал данные, в about:config были выставлены значения browser.cache.memory.enable:false и browser.cache.disk.enable:false

Результаты парсились несложным скриптом и уже на их основе построены графики. Т.к. порядок измерений не имеет значения, все данные отсортированы по возрастанию для лучшей наглядности.

Результаты

Первый график отражает скорость загрузки статических файлов. Вычисляется как 
[полное время страницы (onLoad)] — [время генерации и доставки html-текста страницы]

Видно, что CDN действительно ускоряет процесс. Отсюда вывод — чем больше на сайте картинок\скриптов\css-файлов, тем более эффективным будет использование модуля.

Следующий график показывает время генерации и доставки html-кода страницы. Накладные расходы на серверный парсинг контента, замену ссылок и другие операции серьезно замедляют работу сайта. Получаем вторую прописную истину — использовать CDN разумно на хорошо настроенных, быстрых серверах.

Последний график — время полной загрузки страницы (onLoad). Очевидно, что при просмотре с моего компьютера модуль неэффективен — в 60% случаев сайт с CDN открывается дольше чем без него.

Вообще, дать полностью объективную оценку эффективности CDN невозможно, т.к. скорость загрузки страниц зависит от множества факторов — ширины канала, удаленности от дата-центров с cdn и сайтом, настроек и мощности сервера, а также множества других. В моем случае включенный CDN явно увеличивает скорость отдачи статики, но практически весь выигрыш нивелируется бОльшим временем генерации страницы на сервере (чему с большой вероятностью причина — низкая производительность виртуального хостинга).

Интересные статьи

Интересные статьи

Пока индексируется github (спасибо лимиту в 5000 запросов в час), поговорим пока о тестировании парсеров. Обсудим пожелания к процессу разработки грамматик, их тестирован...
Канарейка — маленькая птица, которая постоянно поет. Эти птички чувствительны к метану и угарному газу. Даже от небольшой концентрации лишних газов в воздухе они теряют сознание или умирают. Золо...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...
Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц.