#Что означает ошибка
Медленные скрипты
request_slowlog_timeout записывает трассировку медленных запросов. Включите slowlog в пуле и анализируйте найденные функции.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не включён slowlog | Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Включите. Посмотрите соответствующие настройки и журнал сервиса. |
| Нет прав | Сравните полномочия текущей учётной записи и доступность нужной функции; на рабочем компьютере политики задаёт администратор. | Определите владельца и права нужного объекта; выдавайте только необходимые разрешения, не отключая защитные механизмы. |
| Тяжёлый запрос | Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Оптимизируйте. |
| Внешний API | Прочитайте относящуюся к этому компоненту запись в журнале до изменения конфигурации. | Кэшируйте. |
#Пошаговое решение
- Включите slowlogСначала выясните действующую версию PHP-FPM и пул нужного сайта в панели хостинга или по настройкам веб-сервера. Найдите файл пула и сделайте его резервную копию. Slowlog ведётся на уровне пула; изменение чужой версии PHP не покажет запросы вашего сайта.
- Задайте timeoutВ конфигурации проверяемого пула задайте
request_slowlog_timeout = 5sиslowlog = /защищённый/путь/имя-пула-slow.log, выбрав порог под обычное время работы сайта. Проверьте существование каталога и права записи службе; журнал с путями и фрагментами вызовов не должен находиться в публичном каталоге. - Анализируйте трассировкиПеред применением выполните проверку конфигурации используемого PHP-FPM, например
sudo php-fpm8.3 -tдля PHP 8.3, затем согласованную перезагрузку лишь нужной службы. Воспроизведите медленный запрос и следите за журналомtail -f, не генерируя чрезмерную нагрузку. - Проверьте альтернативу: внешний apiНайдите повторяющиеся стек вызовов и соотнесите их с SQL, внешними API или конкретным расширением CMS. После устранения узкого места повторите запрос и сравните время ответа. Снизьте подробность или отключите временный slowlog, если он больше не нужен, и ограничьте срок хранения файла.
#Проверка результата
Для «PHP-FPM: как включить slowlog и найти медленные скрипты» выполните штатную проверку конфигурации, затем один контрольный запрос к сервису. Сверьте его результат с журналом и убедитесь, что пользователи не получили новых ответов 4xx или 5xx после изменения.