# Производительность сайта и APM

Source: https://support.kapsulehost.com/ru-ru/site-performance

Application Performance Monitoring (Мониторинг производительности приложения) для сайтов WordPress и WooCommerce показывает, куда на самом деле уходит время вашего сайта: процентили времени отклика, самые медленные URL-адреса, самые медленные запросы к базе данных и то, насколько сильно нагружен PHP. В этом руководстве описано, как включить APM, как читать каждую панель и что делать с полученными данными.

## Где находится APM в KPanel

1. Войдите в [KPanel](https://kpanel.kapsulehost.com).
2. Нажмите **Веб-сайты** на боковой панели слева, затем выберите сайт.
3. В левом меню сайта откройте **Производительность**, затем **APM**.

Прямой адрес: `/websites/<site-id>/performance`.

![Мониторинг производительности приложения для сайта в KPanel](https://support.kapsulehost.com/help/screenshots/site-performance.4533b9b8.webp)

> **Note:** APM доступна в зависимости от тарифного плана. Она включена в тариф Managed WordPress Pro. На любом другом тарифе на странице отображается панель с предложением перейти на более высокий тариф, объясняющая, что даёт APM, вместо самих панелей мониторинга. Если вы видите такую панель, значит, функция недоступна на вашем текущем тарифе, а не просто отключена.

## Включение APM

APM отключена, пока вы её не включите. На тарифе, где доступна эта функция, страница отображает карточку **Мониторинг производительности приложения** с кнопкой **Включить APM**.

При включении добавляется облегчённый журнал доступа и трекер медленных запросов на уровне PHP-воркера. Это не внедряет ничего в ваши страницы и не создаёт дополнительной нагрузки на обработку запроса посетителя, поэтому функцию безопасно держать включённой постоянно.

После включения на странице отображается плашка **APM активна** с датой включения, кнопка **Refresh** и кнопка **Отключить APM**. Метрики появляются только после реального трафика, поэтому на малопосещаемом сайте некоторое время будет отображаться надпись **Ожидание запросов**.

## Время отклика

Первая карточка содержит четыре показателя за последний час, а в её заголовке указаны количество запросов и время снятия показаний.

| Метрика | Что означает |
|---|---|
| Медиана (P50) | Половина запросов были быстрее этого значения |
| P95 | 95 процентов запросов были быстрее этого значения |
| P99 | 99 процентов запросов были быстрее этого значения |
| Частота ошибок 5xx | Доля запросов, завершившихся ошибкой сервера |

Каждая плитка окрашена определённым цветом, чтобы вы могли оценить состояние, не зная пороговых значений.

Читайте процентили вместе, а не по отдельности. Хорошая медиана при ужасном P95 означает, что большинство запросов выполняются нормально, а меньшинство выполняется мучительно долго, это классический признак одной медленной страницы, одного медленного запроса или кэша, который не срабатывает для определённых URL. Плохая медиана означает, что медленно работает весь сайт, и причина обычно структурная: заниженный тариф, тяжёлая тема оформления или отключённое кэширование.

Частота ошибок 5xx, единственный показатель, который должен быть равен нулю. Любое устойчивое отклонение от нуля означает, что посетители видят сбои.

## PHP-воркеры

Карточка **PHP-воркеры** показывает три значения:

- **Активные воркеры**: сколько процессов PHP в данный момент обрабатывают запросы.
- **Медленные запросы**: запросы, превысившие порог медленного запроса и зафиксированные в журнале.
- **Всего обработано**: количество соединений, принятых с момента запуска пула.

Активные воркеры, это сигнал насыщения. Если это значение держится у верхнего предела при обычном трафике, запросы встают в очередь за PHP, и каждое время отклика на панели выше частично складывается из времени ожидания в очереди. Это проблема нехватки мощности, а не кода, и решение, более объёмный тариф или уменьшение нагрузки на запрос.

Растущее количество медленных запросов при стабильном объёме запросов означает, что что-то стало затратным по ресурсам.

## Самые медленные конечные точки

Эта карточка перечисляет самые медленные URL-адреса по времени отклика P95, для каждого показана полоса, значение P95 в миллисекундах и количество вызовов. Цветом отмечены худшие показатели.

Воспринимайте это как короткий список, а не как рейтинг. Важнее всего пересечение «медленный» и «часто вызываемый»: страница, которая загружается четыре секунды, но открывается дважды в день, значит гораздо меньше, чем страница, которая загружается 900 миллисекунд, но открывается десять тысяч раз.

Частые причины:

- **Страницы поиска**, которые сканируют данные без индекса.
- **Списки категорий и архивов**, формирующие крупные запросы на каждый вызов.
- **Страницы корзины, оформления заказа и личного кабинета**, которые никогда не кэшируются, так как они индивидуальны для каждого посетителя. См. [Кэширование сайта](https://support.kapsulehost.com/ru-ru/site-cache), чтобы узнать, какие пути намеренно не попадают под кэширование.
- **URL-адреса административной панели**, которые всегда динамические.
- **Любые вызовы внешнего API** внутри запроса, где вы фактически измеряете работу чужого сервера.

## Медленные запросы

Карточка **Медленные запросы** перечисляет запросы к базе данных со средним временем выполнения более 100 миллисекунд, на основе собственных данных о производительности базы данных. В каждой строке указаны среднее время, максимальное время, количество вызовов и нормализованный текст запроса.

Текст запроса представлен в виде дайджеста с удалёнными литеральными значениями, поэтому один и тот же запрос с разными параметрами группируется в одну строку. Именно это делает количество вызовов информативным показателем.

Устранение медленных запросов обычно сводится к одному из трёх действий: добавлению индекса, который нужен запросу, снижению частоты выполнения запроса за счёт кэширования результата или удалению плагина, который его порождает. Запрос с очень высоким количеством вызовов и умеренным средним временем часто в совокупности хуже, чем один резко выделяющийся случай.

Если списки конечных точек и запросов оказываются пустыми, карточка сообщает, что медленных запросов не обнаружено, это означает, что всё за последний час укладывалось в обычные пороговые значения.

## Как эффективно использовать APM

**Зафиксируйте исходные показатели.** Посмотрите на цифры, когда сайт работает исправно, чтобы знать, как выглядит норма. P95 в 700 миллисекунд ничего не значит, пока вы не узнаете, что раньше было 300.

**Меняйте по одному параметру за раз.** Включите кэш, обновите страницу и сравните. Отключите подозрительный плагин, обновите страницу и сравните. Пакетные изменения не дают понятного сигнала.

**Обновляйте данные осознанно.** Кнопка **Refresh** позволяет перечитать метрики по запросу. Цифры охватывают последний час, поэтому дайте изменению немного времени, прежде чем делать выводы.

**Смотрите не только на APM.** APM измеряет работу вашего приложения. Если проблема в сети или на уровне периферийной инфраструктуры, а не в коде, об этом вам скажут [Аналитика трафика сайта](https://support.kapsulehost.com/ru-ru/site-analytics) и [Мониторинг доступности сайта](https://support.kapsulehost.com/ru-ru/site-uptime-monitoring).

## Устранение неполадок

**На странице отображается панель перехода на другой тариф.** APM включена в тариф Managed WordPress Pro. На других тарифах эта функция недоступна.

**APM включена, но данных нет.** Трафика пока не было. Метрики появляются после того, как сайт начинает получать запросы.

**Время отклика в APM в норме, но сайт кажется медленным.** APM измеряет только серверное время. Время, затрачиваемое на загрузку изображений, выполнение JavaScript и загрузку шрифтов в браузере, здесь не отображается. Если серверное время в норме, а страница всё равно кажется медленной, проблема на стороне интерфейса или в том, что именно браузеру приходится загружать.

**P95 ухудшился после обновления плагина.** Проверьте список самых медленных конечных точек, затем список медленных запросов. Плагин, добавивший запрос при каждой загрузке страницы, проявится в обоих списках.

**Всё работает медленно постоянно.** Сначала проверьте насыщение PHP-воркеров. Если воркеры упираются в предел, увеличьте мощность или снизьте нагрузку на запрос, прежде чем оптимизировать что-либо ещё.

**Ошибки выше нуля.** Исправьте это до того, как заниматься миллисекундами. Начните с журналов и используйте кнопку **Troubleshoot with Kora** на вкладке **Страницы ошибок** сайта: она просит Kora прочитать за вас журналы ошибок и недавние сбои. См. [Пользовательские страницы ошибок](https://support.kapsulehost.com/ru-ru/site-error-pages).

## Похожие страницы

- [Кэширование сайта](https://support.kapsulehost.com/ru-ru/site-cache), обычно даёт наибольший прирост производительности для сайта на WordPress.
- [Безопасность сайта](https://support.kapsulehost.com/ru-ru/site-security) для сканирования уязвимостей и вредоносного ПО на том же сайте.
- [Создание резервной копии](https://support.kapsulehost.com/ru-ru/taking-a-backup) перед тем, как начать удалять плагины.
