Andrey Ragozin vgr154 Сбер ID
Рейтинг
1 813
№ 565 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Новосибирск
Опыт работы
26 лет
На сайте с
2013 года
Юридический статус
ИП

Оптимизация сервера для сайта на Битркик

Используемые навыки Bitrix MySQL Nginx PHP

Описание

Клиент обратился с проблемой - очень тормозит сайт.
Проверили без кэша страница генерировалась 6 секунд из них почти все время выполнение запросов в БД.

Решение

Проведена комплексная диагностика высокой нагрузки на сервер базы данных сайта. Основной задачей было выявление наиболее ресурсоемких и часто выполняемых запросов, их оптимизация средствами MySQL и определение запросов, требующих доработки программной логики Битрикс.

В ходе работ включен журнал медленных запросов MySQL с фиксацией операций длительностью более двух секунд. Проанализированы slow query log, статистика Performance Schema, активные процессы во время всплесков нагрузки и планы выполнения запросов. Всего рассмотрено 29 различных производственных SQL-шаблонов без учета служебных диагностических команд.

Для 16 шаблонов подтверждено улучшение планов выполнения или фактического времени работы. В базе оставлено 10 полезных индексов для таблиц элементов, разделов, свойств, фасетного поиска, каталога, журналов Яндекс.Маркета и интеграции Robomarket. Индексы создавались в онлайн-режиме с минимизацией блокировок. Четыре экспериментальных изменения, не давших ожидаемого результата, были полностью отменены. Глобальные настройки оптимизатора возвращены в исходное состояние.

Результат

Получены следующие подтвержденные результаты:

- поиск разделов по свойствам ускорен примерно с 4 секунд до 0,03 секунды;
- полная выборка свойств элементов ускорена с 2,18–2,46 до 0,49–0,65 секунды;
- при поиске по артикулу устранено чтение примерно 55 тысяч строк — план перешел к точечному поиску;
- запросы к журналу Яндекс.Маркета сократили среднее число обрабатываемых строк примерно с 11,6 тысячи до 146;
- фильтры дисков ускорены примерно с 50–65 до 10–20 миллисекунд;
- время отдельных фасетных запросов сократилось примерно с 0,9 до 0,20–0,27 секунды.

Для 12 шаблонов достигнут предел оптимизации средствами индексов. Их основная проблема находится на стороне приложения: повторная загрузка всего инфоблока, отсутствие пакетной обработки, N+1-запросы, частые обращения за одними и теми же свойствами и ценами, а также пересчет количества элементов в разделах. Эти запросы подготовлены для передачи разработчику Битрикс.

Дополнительно проверен Query Cache. Несмотря на высокий оборот данных и частые очистки, существенных ожиданий блокировок в контрольном интервале не обнаружено. Поэтому настройки Query Cache не изменялись.

На момент текущей проверки средняя загрузка 12 процессорных ядер составляет около 11,3%. Оперативная память занята на 12,2 из 15,4 ГБ, файл подкачки — на 2,12 из 5 ГБ. Сервер работает стабильно, однако MySQL остается главным потребителем ресурсов.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Система управления проектами и задачами: бэкенд, БД и панель администрирования
Система управления проектами и задачами: бэкенд, БД и панель администрирования
31
Веб-разработка и IT АТОиР — учёт оборудования с QR-маркировкой и заявки на обслуживание с цепочками подрядчиков (Go + Telegram Mini App)
АТОиР — учёт оборудования с QR-маркировкой и заявки на обслуживание с цепочками подрядчиков (Go + Telegram Mini App)
26