Клиент обратился к нам, потому что сайт периодически «зависал» или «долго отвечал», возникала 502 ошибка (сервер недоступен). Проблема решалась перезагрузкой сервера, но это помогало ненадолго. На сайте расположен каталог на 170+ тысяч товаров, 250+ свойств и 800+ разделов.
Для начала мы провели комплексную диагностику состояния проекта: проверили состояние таблиц базы данных, состояние кода публичной части и фоновых/административных процессов.
В итоге были выявлены критичные проблемы в структуре и реализации публичной части в части шаблона и блоков каталога, которые предстояло исправить.
В первую очередь, для устранения проблемы было решено вынести на фоновые независимые периодические процессы пересчеты данных, чтобы убрать тяжелые (трудоемкие) вычисления в моменты переходов со страницы на страницу.
Следующая проблема была в больших объемах данных в системных таблицах, которые создавали нагрузку на сервер и замедляли его работу. Мы изучили причины разрастания таблиц, а затем оптимизировали сроки хранения данных, отключили создание избыточных записей и почистили их вручную.
Какие результаты мы получили? Смотрите в скриншотах.
https://www.fl.ru/user/hzkilla/portfolio/7883618/