Клиент столкнулся с регулярной высокой нагрузкой на сервер, в первую очередь нагрузкой на сервер баз данных. Это проявлялось в виде заметных замедлений в работе системы, длительного времени ожидания ответа (более 10 секунд), а также периодических падениях с ошибкой 502.
На первом этапе мы провели предварительную диагностику системы, в ходе чего быстро выявили основную причину неполадок — отключено кэширование в настройках Битрикс. Далее мы проанализировали причины отключения. Чаще всего причина заключается в некорректной реализации функциональных блоков в контенте, которые не работают «как ожидается» при включенном кэшировании.
Что было сделано:
- Включили кэширование и провели тщательное тестирование сайта.
- Обнаружили множественные ошибки разработки в каталоге шатров и их детальных страниц, детальных страниц каталога проектов и детальных страниц каталога опций. Именно из-за этих проблем кэширование ранее было отключено — чтобы блоки и страницы отображались правильно.
- Провели все необходимые работы, устранили обнаруженные проблемы разработки, где нужно полностью переработали функциональные блоки, и включили кэш.
- Параллельно в тех же блоках, с которыми взаимодействовали, оптимизировали запросы к базе данных и уменьшили количество запрашиваемых/обрабатываемых данных.
- После включения кэширования сайт начал работать стабильно и без сбоев.
- Стабилизирована нагрузка на сервер, результаты отражены в графиках в панели управления.
- Полностью исключили возникновение ошибки 502 (сервер временно недоступен).
- Значительно улучшена скорость работы проекта — нет подвисаний при посещении страниц.
- Улучшили показатели PageSpeed и оптимизировали производительность, что положительно сказалось на удобстве использования сайта.
- Все изменения обеспечили стабильную и комфортную работу ресурса для посетителей.
В результате:
Результаты проведенных работ видны на графиках в панели управления сервера:
В ходе дополнительной диагностики мы обнаружили несколько проблем, влияющих на производительность сайта при отключенном кэшировании.
1. Долгая загрузка страниц проектов
Проблема: Периодически долгая загрузка страниц проектов (от 1-2 секунд и выше).
Решение: Произвели дебаг кода, обнаружили избыточную нагрузку в методах стороннего модуля ram.watermark, отвечающего за накладывание watermark-изображения «на лету». Модуль доработали, проблема устранена.
2. Медленная загрузка скрытых блоков
Проблема: На детальных страницах каталога шатров и каталога проектов обнаружены функциональные блоки, имеющие время загрузки более 0,5-1 секунд на блок, но при этом не отображающиеся на первом экране: это блок фотографий, блок дополнительных проектов, блок дополнительных шатров и блок дополнительных опций.
Решение: Вынесли формирование указанных блоков на ajax, таким образом уменьшив время первичной загрузки страницы.
После всех доработок скорость работы сайта заметно увеличилась, а пользователи получили более плавный и отзывчивый интерфейс. Пожеланием клиента было улучшить показатели PageSpeed, поэтому соответствующие замеры приведены в итогах работ.
1. СТРАНИЦА ШАТРА В КАТАЛОГЕ «ПРОДАЖИ»
2. СТРАНИЦА ШАТРА В КАТАЛОГЕ «АРЕНДЫ»
3. СТРАНИЦА ПРОЕКТА В КАТАЛОГЕ «ПРОЕКТОВ»
Что в итоге?
