504 Gateway при выполнении скрипта

12
D
На сайте с 28.06.2008
Offline
1114
2395

Есть тяжелый скрипт, собирающий фид на экспорт объемом 250 мб (выходной файл).

В последнее время перестал работать.

Запустил вручную - 504 Gateway

Погуглил - прописал в Нгихс -

fastcgi_read_timeout 300;

в пхп фм - в www.conf

request_terminate_timeout = 300

в пхп ини

max_execution_time = 300
max_input_time = 120

Перзапустил пхп и нгихс и скрипт выполнился. Я довольный ушел спать. Но ночью по крону скрипт не выполнился опять.

Запускаю из консоли - 504 ошибка.

Те, цифры выше - это уже третье увеличение лимитов. И вот еще что заметил. Скрипт без проблем отрабатывает сразу после перезапуска пхп (даже с лимитами в 2 раза меньше), но уже второй раз получаем 504.

Что посоветуете?

bums
На сайте с 03.07.2006
Offline
449
#1

в командной строке работает другой php.ini

спроси с консоли

php -i |grep 'php.ini'
Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.
Оптимизайка
На сайте с 11.03.2012
Offline
396
#2
Dram:
ночью по крону скрипт не выполнился опять

Can you run this task without involving of web server? I.e. as php-cli application?

Запускаю из консоли - 504 ошибка.

"php file.php" or "curl http://blablabla"? Note that php-cli and php-fpm have different php.ini options!

If you can't run your script with php-cli, you may use fastcgi_finish_request() function to continue run the script in the background.

P.S. show your logs.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
P
На сайте с 08.03.2007
Offline
250
#3

Наверно стоит попробовать зпускать фоновое задание и отдавать ответ когда оно выполнится, периодически проверяя статус выполнения.

D
На сайте с 28.06.2008
Offline
1114
#4

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

Джумла пишет:

Configuration File (php.ini) Path /etc/php/7.0/fpm

Loaded Configuration File /etc/php/7.0/fpm/php.ini (именно его я и правил)

Скрипт вызываю так - wget -O /dev/null "http://www.site.ru/index.php?option=blabla"

В ерор логе Нгихса ничего.

В логе пхп фм в момент работы скрипта появилось это

[24-Oct-2016 07:44:25] WARNING: [pool www] server reached max_children setting (20), consider raising it
[24-Oct-2016 07:45:45] WARNING: [pool www] child 14160 exited on signal 9 (SIGKILL) after 1268.367945 seconds from start
Оптимизайка
На сайте с 11.03.2012
Offline
396
#5
Dram:
В логе пхп фм в момент работы скрипта появилось это
[24-Oct-2016 07:45:45] WARNING: [pool www] child 14160 exited on signal 9 (SIGKILL) after 1268.367945 seconds from start

So max_execution_time = 300 is just not enough?

D
На сайте с 28.06.2008
Offline
1114
#6

Решил посчитать на какой секунде консоль отдает 504 ошибку - получилось примерно 25 сек. Думаете реально дело в max_execution_time ?

После получения 504 ошибки в консоли все настолько наглухо виснет, что даже htop не запустить:

root@nginx ~ # htop

-bash: fork: Cannot allocate memory

bums
На сайте с 03.07.2006
Offline
449
#7

открой phpinfo, сколько там memory_limit?

Немного увеличь(добавь для начала например 16 или 24) это значение в php.ini и попробуй запустить скрипт снова

и не путай запуск с консоли как #php script.php и запуск из браузера, работают разные php.ini

Я бы запускал тяжелый скрипт с консоли, что бы исключить возню с webсервером, а копаться только в настройках PHP.

Запусти из консоли

php -i |grep 'php.ini'
, посмотри какой php.ini используется, его и правь.
D
На сайте с 28.06.2008
Offline
1114
#8

Да, вы правы, спасибо - править надо было тут /etc/php/7.0/cli

Вижу что и Оптимизайка что-то про кли писал выше, но из-за маразмов с инглишем нифига не понял о чем он там

Поставил

max_execution_time = 300

max_input_time = 120

а ниже уже было прописано

memory_limit = -1

перезагрузил пхп, подождал минут 15 и выполнил скрипт в консоли. Опять получил 504 ошибку и дикие тормоза.

В ероро логе пхп опять

[24-Oct-2016 09:30:46] WARNING: [pool www] server reached max_children setting (20), consider raising it

[24-Oct-2016 09:31:33] WARNING: [pool www] child 22249 exited on signal 9 (SIGKILL) after 869.685582 seconds from start

bums
На сайте с 03.07.2006
Offline
449
#9

ну так увеличь max_execution_time, ну и max_input_time тоже на всякий случай увеличь

D
На сайте с 28.06.2008
Offline
1114
#10
bums:
ну так увеличь max_execution_time, ну и max_input_time тоже на всякий случай увеличь

А смысл его увеличивать если консоль и не ждет 300 сек, а выдает ошибку секунд через 30?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий