У php-fpm есть какие-то дополнительные таймауты?
Никак не могу обновить на одном из проектов модуль sale в bitrix:
[13-Sep-2023 14:59:38] WARNING: [pool www] child 2369, script '/var/www/project/htdocs/bitrix/admin/update_system_call.php' (request: "GET /bitrix/admin/update_system_call.php?&sessid=b1e8b4c21e79618a6d8b517c40b30e93&query_type=M&updRand=2") execution timed out (395.302464 sec), terminating [13-Sep-2023 14:59:38] WARNING: [pool www] child 2369 exited on signal 15 (SIGTERM) after 8954.024073 seconds from start [13-Sep-2023 14:59:38] NOTICE: [pool www] child 8331 started |
[13-Sep-2023 14:59:38] WARNING: [pool www] child 2369, script '/var/www/project/htdocs/bitrix/admin/update_system_call.php' (request: "GET /bitrix/admin/update_system_call.php?&sessid=b1e8b4c21e79618a6d8b517c40b30e93&query_type=M&updRand=2") execution timed out (395.302464 sec), terminating [13-Sep-2023 14:59:38] WARNING: [pool www] child 2369 exited on signal 15 (SIGTERM) after 8954.024073 seconds from start [13-Sep-2023 14:59:38] NOTICE: [pool www] child 8331 started
Причина в медленной БД по всей видимости, поэтому работа скрипта не укладывается в таймаут. (исправить работу БД невозможно)
Падает на 300+ секунде, и nginx возврщает 502: https://i.imgur.com/Bg2VfvY.png и все бы хорошо - надо только таймаут увеличить, но: https://i.imgur.com/sRQ0ga1.png
И https://i.imgur.com/t0W50Ey.png тоже не помогает. В чем может быть проблема? У fpm где-то есть еще какие таймауты?
Дополнительно:
он есть, по дефолту 300сек
в конфиг nginx.conf в блок http добавь
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
300 твой лимит
но ведь процесс убивается в php-fpm
я бы не был в этом уверен
Вот так их добавил: https://i.imgur.com/xGocZMw.png (закомментированные сейчас) - просто выдает:
Проверяю эту гипотезу
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
PHP-FPM (FastCGI Process Manager) - это альтернативный способ обработки PHP-скриптов, который обеспечивает более эффективное управление процессами PHP. В PHP-FPM есть несколько параметров, которые могут быть настроены для оптимизации производительности и управления процессами.
Один из таких параметров - это тайм-ауты, которые могут быть настроены для управления временем ожидания ответа от PHP-процесса. Эти тайм-ауты могут быть установлены как глобально для всего пула PHP-процессов, так и индивидуально для каждого процесса.
Для установки тайм-аутов в PHP-FPM, вы можете использовать следующие директивы в конфигурационном файле php-fpm.conf:
- request_terminate_timeout: Этот параметр устанавливает максимальное время ожидания ответа от PHP-процесса для выполнения запроса. Например, если установить request_terminate_timeout на 30 секунд, то PHP-FPM автоматически завершит процесс, который выполняется более 30 секунд.
- request_slowlog_timeout: Этот параметр устанавливает время, после которого запрос будет считаться медленным и будет записан в лог-файл медленных запросов.
Пример конфигурации в php-fpm.conf для установки тайм-аутов:
request_terminate_timeout = 30s request_slowlog_timeout = 10s
После внесения изменений в конфигурационный файл php-fpm.conf, не забудьте перезапустить сервис PHP-FPM, чтобы изменения вступили в силу.
Таким образом, настройка тайм-аутов в PHP-FPM позволяет управлять временем ожидания ответа от PHP-процессов и оптимизировать производительность вашего веб-сервера.