айтитек
+7 (3012) 599-513

Тормоза...

Тормоза... Разбирали тут кейс с интернет-магазином монгольского кашемира (gobi.ru). Движок классический для e-com в РФ — 1С-Битрикс в связке с решением «Аспро: Максимум», крутится на выделенном…

айтитек

Тормоза...

Разбирали тут кейс с интернет-магазином монгольского кашемира (gobi.ru). Движок классический для e-com в РФ — 1С-Битрикс в связке с решением «Аспро: Максимум», крутится на выделенном сервере.

Жалоба от владельца стандартная: «Сайт вроде работает, но баннеры на главной висят вечность, каталог задумывается, на телефонах всё это шевелится неохотно».

Залезли под капот, сняли телеметрию. Рассказываю по фактам, где были грабли и как лечили.


1. Баннеры в 8K: как похоронить мобильный трафик
Главная боль была видна сразу при открытии со смартфона. Первый экран замирал на 3–5 секунд.
Полезли в файлы слайдера. Картина маслом:
- Баннер коллаборации с дизайнером залит прямо из типографского макета — 8000 на 3567 пикселей. Один файл весит ровно мегабайт. Зачем экрану смартфона ширина в 8K — загадка.
- Второй баннер новинок коллекции сохранён в несжатом PNG на 1.85 МБ.
- Третий — в 4K.

Итого: человек заходит на главную, и его телефон пытается одновременно выкачать 3.5 мегабайта картинок в первом же блоке. Слайдер начинает крутиться, браузер пыхтит, пережимая 8K под размер экрана, пользователь плюет и закрывает вкладку.

Что сделали:
Стянули баннеры, исходники спрятали в архив. Пережали картинки под адекватный веб-стандарт (максимум 1920 px по ширине) с правильной компрессией.
Итог: вес всей пачки баннеров упал с 3.5 МБ до 650 КБ. Сжали в 5.5 раз без потери качества для глаза. Слайдер теперь залетает мгновенно даже на обычном LTE.

2. Дисковый кэш Битрикса: почему каталог думал по 1.5 секунды
Вторая беда — отклик самого сервера (TTFB). На карточках товаров и в каталоге сервер при «холодном» заходе отдавал первый байт за 1.4 секунды. Для коммерческого магазина это непозволительно долго (норма — до 0.3–0.5 с).

Корень проблемы: Битрикс по дефолту молотил файловый кэш. Десятки тысяч мелких файлов писались и читались с диска. Когда в каталоге куча торговых предложений (размеры, цвета кашемира, остатки), дисковая подсистема встает в очередь.

Что сделали:
На сервере подняли Redis в оперативной памяти и переключили кэширование Битрикса на него, прикрутив быстрый бинарный сериализатор igbinary. Теперь выборки компонентов и свойства товаров отдаются напрямую из RAM, вообще не трогая диск.

Итог по замерам (curl в 5 прогонов):
* Каталог товаров: средний TTFB упал с 0.71 с до 0.52 с, а общая отдача страницы ускорилась с 1.01 с до 0.84 с (прирост скорости ~27–30%).
* Главная страница: первый байт укладывается в 0.39 с, полная загрузка HTML — 0.51 с.


Резюме для бизнеса
Никакой магии и переписывания сайта с нуля.
1. Не заливайте в админку полиграфические исходники — веб-дизайнер или контентщик обязаны готовить графику под веб (до 1920 px и в нормальном весе).
2. Выносите (или наймите тех кто шарит) кэш тяжелых CMS из файлов в оперативку (Redis/Memcached).

Два точечных действия сняли затупы на первом экране и срезали треть времени отклика сервера. Конверсия на мобилках скажет спасибо.

Подписаться на материалы?

Раз в 2–3 недели присылаем новые статьи и полезные подборки на почту. Без спама и без «секретных техник для бизнеса».