Аудит продуктивності сайту 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 на мільйоні рядків.
Важкі агенти у веб-потоці. 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 години |
| Агенти у веб-потоці (немає cron) | -0,3 с на кожному хіті | 30 хв |
| Відсутність індексів на bl_custom | -0,8 с при фільтрації | 1 година |
| Немає gzip на статиці | +300 мс завантаження JS/CSS | 30 хв |
Що входить до аудиту продуктивності
- Профілювання сторінок через BX_DEBUG та Xdebug
- Аналіз повільних SQL-запитів та план виконання (EXPLAIN)
- Перевірка налаштувань кешу на всіх рівнях (компоненти, сторінки, CDN)
- Аналіз агентів та cron-завдань
- Аудит HTTP-рівня: TTFB, стиснення, кешування статики
- Підсумковий звіт з пріоритизованим планом оптимізації







