Для начала мы провели комплексную диагностику состояния проекта: проверили состояние таблиц базы данных, состояние кода публичной части и фоновых/административных процессов.
В итоге были выявлены критичные проблемы в структуре и реализации публичной части в части шаблона и блоков каталога, которые предстояло исправить:
В первую очередь, для устранения проблемы было решено вынести на фоновые независимые периодические процессы пересчеты данных, чтобы убрать тяжелые (трудоемкие) вычисления в моменты переходов со страницы на страницу. Далее были сделаны другие шаги:
Следующая проблема была в больших объемах данных в системных таблицах, которые создавали нагрузку на сервер и замедляли его работу. Мы изучили причины разрастания таблиц, а затем оптимизировали сроки хранения данных, отключили создание избыточных записей и почистили их вручную.
Какие результаты мы получили?
1. ГЛАВНАЯ СТРАНИЦА
Было — главная страница с временем генерации (отдачи от сервера) не менее 6 секунд, без кеша.
Стало — полная генерация с отключенным кешированием не более 0.6 сек, из которых 0.2 сек — запросы к базе данных.


2. СТРАНИЦЫ КАТАЛОГА
Было — страницы каталога с временем генерации (отдачи от сервера) не менее 2,5 секунды на любую страницу, без кеша. В пиковые нагрузки (наплыв посетителей и/или ботов) сайт начинал «висеть», у посетителей отображалась 502 ошибка.
Стало — для страницы каталога генерация не более 1 секунды с отключенным кешированием, а для детальной страницы товара каталога — не более 1.5 секунды.


ИТОГО
