Модуль «Мониторинг производительности» (perfmon) — штатный инструмент 1С-Битрикс для оценки быстродействия сайта, сервера и отдельных страниц. Он показывает итоговый балл конфигурации и помогает найти медленные запросы и «тяжёлые» компоненты.
perfmon на странице «Модули».Назначение и возможности модуля
Модуль «Мониторинг производительности» собирает метрики работы сайта и сравнивает их с эталонными значениями. По результатам он выставляет итоговую оценку конфигурации и подсказывает, что именно замедляет проект.
Основные направления анализа:
- Конфигурация — версия PHP, настройки кеширования, параметры базы данных, включение акселераторов.
- Производительность разработки — скорость выполнения PHP-кода и обращений к БД по тестовому набору операций.
- Страницы — время генерации, число запросов к базе и объём потреблённой памяти на конкретных страницах.
- Компоненты — вклад отдельных компонентов и php-включений в общее время генерации.
Результаты используются как отправная точка для оптимизации: сначала устраняются проблемы конфигурации, затем прорабатываются самые «дорогие» страницы и компоненты.
Запуск теста производительности
Комплексный тест запускается в разделе Настройки → Производительность → Панель производительности. Порядок действий:
- Откройте страницу Панель производительности и нажмите Начать тестирование.
- Дождитесь прохождения теста разработки — модуль выполнит серию операций с PHP и базой данных и посчитает число операций в секунду.
- Перейдите на вкладку Конфигурация — система проверит окружение и отметит параметры, которые снижают быстродействие.
- Изучите итоговый балл и рекомендации в правой части экрана.
Тест желательно проводить в период низкой нагрузки: на «живом» проекте нагрузочные операции конкурируют с реальными посетителями и результат искажается. Для чистоты замера повторите тест 2–3 раза и ориентируйтесь на средние значения.
Оценка конфигурации сервера
На вкладке Конфигурация модуль сверяет реальные настройки окружения с рекомендованными. Каждый параметр отмечается как соответствующий требованиям или как проблемный, с краткой рекомендацией по исправлению.
Что проверяется чаще всего:
| Параметр | На что влияет |
|---|---|
| Версия PHP | Скорость выполнения кода, поддержка современных оптимизаций |
| Акселератор (OPcache) | Кеширование скомпилированного PHP-кода |
| Кеширование Битрикс | Снижение числа обращений к БД при генерации страниц |
| Параметры MySQL | Скорость выборок и буферизация данных |
Начинать оптимизацию нужно именно с конфигурации: включённый акселератор и корректное кеширование дают наибольший прирост при минимальных трудозатратах.
Анализ страниц и компонентов
Раздел Настройки → Производительность → Разработка (панель разработчика) позволяет измерить конкретные страницы. Включите режим замера и откройте нужную страницу публичной части — внизу появится информационная панель.
По каждой странице выводятся ключевые метрики:
- Время генерации — сколько миллисекунд занял вывод страницы.
- Количество запросов к БД — общее число SQL-запросов, включая повторяющиеся.
- Пиковая память — максимальный объём памяти PHP при генерации.
- Разбивка по компонентам — вклад каждого компонента и
includeв итоговое время.
Компоненты с наибольшим временем и числом запросов — первые кандидаты на кеширование или переработку. Часто достаточно включить кеш компонента и вынести «тяжёлую» логику в отложенные функции.
Поиск медленных SQL-запросов
Модуль умеет фиксировать долгие запросы к базе данных. В разделе Производительность → Разработка → Запросы включается сбор запросов, превышающих заданный порог времени выполнения.
- Задайте порог (например, запросы дольше 10–50 мс) и включите сбор.
- Пройдите по проблемным страницам сайта, чтобы накопить статистику.
- Откройте список собранных запросов и отсортируйте его по времени выполнения.
- Для самых медленных запросов проанализируйте план выполнения и наличие индексов.
Типичные причины медленных запросов — отсутствие индексов, выборка без ограничений и обращение к большим таблицам без фильтра. После оптимизации не забудьте отключить сбор, чтобы он не создавал дополнительную нагрузку.
Частые ошибки
При работе с модулем чаще всего встречаются такие проблемы:
- Тест на боевом сервере под нагрузкой. Результаты искажаются конкурентными запросами. Тестируйте в спокойное время и усредняйте замеры.
- Оценка без включённого кеширования. Отключённый кеш компонентов и страниц резко ухудшает показатели — сравнивайте только сопоставимые режимы.
- Оставленный включённым сбор запросов. Постоянная запись медленных запросов сама нагружает базу. Отключайте её после анализа.
- Оптимизация страниц до конфигурации. Пока не включён акселератор и не настроено кеширование, точечная правка компонентов почти не даёт эффекта.
- Игнорирование числа запросов. Низкое время генерации при сотнях SQL-запросов на странице — скрытая проблема, которая проявится под нагрузкой.
Итог
Модуль «Мониторинг производительности» даёт единую картину быстродействия проекта: оценку конфигурации, замеры страниц и компонентов, поиск медленных запросов. Правильный порядок работы — сначала привести в порядок окружение и кеширование, затем оптимизировать самые «дорогие» страницы и SQL-запросы.
Регулярный прогон теста после доработок помогает вовремя замечать деградацию производительности и держать сайт быстрым по мере роста нагрузки и объёма данных.