Аудит производительности сайта 1С-Битрикс
Страница каталога грузится 4 секунды. Непонятно почему — сервер мощный, хостинг не жалуется. Без инструментов диагностики начинают гадать: «может кеш не работает», «может база тормозит», «может шаблон тяжёлый». Аудит производительности даёт точный ответ: где именно теряется время и сколько конкретно можно выиграть при исправлении каждой проблемы.
Инструменты диагностики
BX_DEBUG — встроенный инструмент Битрикс. В dbconn.php или bitrix/php_interface/init.php:
define('BX_DEBUG', true);
Показывает в нижней части страницы: количество SQL-запросов, время выполнения PHP, объём памяти, попадания в кеш. Норматив: < 50 запросов, < 500 мс PHP-time на странице каталога.
EXPLAIN ANALYZE для тяжёлых запросов. Медленные запросы логируем через slow_query_log в MySQL или log_min_duration_statement в PostgreSQL (порог 200 мс), затем анализируем план выполнения.
Xdebug + Profiler — для профилирования PHP на уровне функций. Генерирует cachegrind-файл, который читается в QCacheGrind. Показывает, какая именно функция съедает время.
Типичные узкие места на Битрикс
N+1 в компонентах. Листинг товаров делает 1 запрос на список и N запросов на цены/свойства. При 50 товарах на странице — 50 лишних запросов к b_iblock_element_property. Решение: select с нужными свойствами или пакетная выборка.
Отключённый кеш. Разработчик отключил кеш во время разработки и забыл включить. Проверяется в настройках компонента (CACHE_TIME, CACHE_TYPE) и глобально в Настройки → Производительность.
Без индексов на кастомных таблицах. Пользовательские таблицы создаются без индексов, потом по ним делаются запросы с WHERE — full table scan на миллионе строк.
Тяжёлые агенты в web-потоке. CAgent::CheckAgents() вызывается при каждом хите, если не настроен cron. Агенты с тяжёлой логикой тормозят каждую страницу.
Что проверяем при аудите
| Слой | Что измеряем | Инструмент |
|---|---|---|
| PHP | Время выполнения, memory peak | BX_DEBUG, Xdebug Profiler |
| SQL | Количество запросов, slow queries | BX_DEBUG, slow_query_log |
| Кеш | Hit rate, объём | Bitrix cache stats |
| HTTP | TTFB, размер страницы, ресурсы | Lighthouse, WebPageTest |
| Сервер | CPU, RAM, I/O wait | Zabbix, top, iostat |
Отчёт аудита
Результат — таблица узких мест с оценкой влияния и трудоёмкостью исправления:
| Проблема | Влияние | Трудоёмкость |
|---|---|---|
| N+1 в компоненте каталога | -1.5 с на странице | 4 часа |
| Агенты в web-потоке (нет cron) | -0.3 с на каждом хите | 30 мин |
| Отсутствие индексов на bl_custom | -0.8 с на фильтрации | 1 час |
| Нет gzip на статике | +300 мс загрузки JS/CSS | 30 мин |
Что входит в аудит производительности
- Профилирование страниц через BX_DEBUG и Xdebug
- Анализ медленных SQL-запросов и план выполнения (EXPLAIN)
- Проверка настроек кеша на всех уровнях (компоненты, страницы, CDN)
- Анализ агентов и cron-заданий
- Аудит HTTP-уровня: TTFB, сжатие, кеширование статики
- Итоговый отчёт с приоритизированным планом оптимизации







