LINUX.ORG.RU
ФорумAdmin

PHP быкует

 ,


0

1

Установил nginx + php7fpm, все было нормально, до переезда на новый движок php(стало больше сыпаться ajax запросов, но не так чтобы очень, но)

В логах бесконечное

WARNING: [pool www] child 28673 exited on signal 7 (SIGBUS) after 57.321014 seconds from start

WARNING: [pool www] child 28867, script '/var/www/public/index.php' (request: "POST /index.php") executing too slow (1.291380 sec), logging


пул обычный
listen = /run/php/php7.0-fpm.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 30 - увеличил потом, было меньше
pm.start_servers = 6 - увеличил потом, было меньше
pm.min_spare_servers = 4 - увеличил потом, было меньше
pm.max_spare_servers = 17 - увеличил потом, было меньше
pm.status_path = /fpm
catch_workers_output = yes
slowlog = /var/log/php/slow.log
request_slowlog_timeout = 1s

access.log = "/var/log/php/access.log"
access.format = "%R|%u|%t|%m|%r%Q%q|%s|%f|%{mili}d|%{kilo}M|%C%%"



Дистр деб 9, 8 ядер ксеон какой то 12хх. На сайте часто error 504(gateway timeout). Проц сильно не грузится! Ну 10-20%, память тоже не жрет 1.5-.1.8Гб

FPM юзаю недавно, до этого apache2php. Я понять не могу эта ошибка означает что процесс crashed или что?

★★★★

Обычно 504(gateway timeout) это fatal error где-то в прикладных скриптах, в логах более подробнее.

Если в проекте используются \Exception - то нужно уделить этому внимание.

anonymous
()
Ответ на: комментарий от anonymous

Один и тот же url

http://example.com/list 200
http://example.com/list 200
http://example.com/list 504
http://example.com/list 200
http://example.com/list 200
http://example.com/list 504


Exception в логах нет, php erros тоже

gobot ★★★★
() автор топика

«child 28673 exited on signal 7 (SIGBUS) after 57.321014 seconds from start»

Запрос выполнялся минуту и отвалился по таймауту. Что там в коде минуту высчитывается?

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Бывает и больше и меньше
cat /var/log/php/php7.0-fpm.log | grep after

[26-Apr-2018 23:49:41] WARNING: [pool www] child 5020 exited on signal 7 (SIGBUS) after 360.231080 seconds from start
[26-Apr-2018 23:59:08] WARNING: [pool www] child 11490 exited on signal 7 (SIGBUS) after 0.167532 seconds from start
[26-Apr-2018 23:59:08] WARNING: [pool www] child 11143 exited on signal 7 (SIGBUS) after 36.888565 seconds from start
[26-Apr-2018 23:59:08] WARNING: [pool www] child 11246 exited on signal 7 (SIGBUS) after 27.516730 seconds from start
[26-Apr-2018 23:59:08] WARNING: [pool www] child 11470 exited on signal 7 (SIGBUS) after 2.877883 seconds from start
[26-Apr-2018 23:59:08] WARNING: [pool www] child 11488 exited on signal 7 (SIGBUS) after 1.312316 seconds from start
[26-Apr-2018 23:59:09] WARNING: [pool www] child 11271 exited on signal 7 (SIGBUS) after 24.213211 seconds from start
[26-Apr-2018 23:59:27] WARNING: [pool www] child 11472 exited on signal 7 (SIGBUS) after 21.136947 seconds from start
[26-Apr-2018 23:59:37] WARNING: [pool www] child 11527 exited on signal 7 (SIGBUS) after 28.406217 seconds from start
[26-Apr-2018 23:59:43] WARNING: [pool www] child 11461 exited on signal 7 (SIGBUS) after 37.920997 seconds from start
[27-Apr-2018 00:00:07] WARNING: [pool www] child 8754 exited on signal 7 (SIGBUS) after 454.323165 seconds from start
[27-Apr-2018 00:00:07] WARNING: [pool www] child 11260 exited on signal 7 (SIGBUS) after 84.715372 seconds from start
[27-Apr-2018 00:00:08] WARNING: [pool www] child 9671 exited on signal 7 (SIGBUS) after 311.160023 seconds from start
[27-Apr-2018 00:00:08] WARNING: [pool www] child 11495 exited on signal 7 (SIGBUS) after 60.784041 seconds from start
[27-Apr-2018 00:00:08] WARNING: [pool www] child 11688 exited on signal 7 (SIGBUS) after 31.537263 seconds from start
[27-Apr-2018 00:00:08] WARNING: [pool www] child 11716 exited on signal 7 (SIGBUS) after 25.776000 seconds from start
[27-Apr-2018 00:00:08] WARNING: [pool www] child 11187 exited on signal 7 (SIGBUS) after 92.667072 seconds from start
[27-Apr-2018 00:00:09] WARNING: [pool www] child 11951 exited on signal 7 (SIGBUS) after 1.285505 seconds from start
[27-Apr-2018 00:00:10] WARNING: [pool www] child 11938 exited on signal 7 (SIGBUS) after 2.912363 seconds from start
[27-Apr-2018 00:00:10] WARNING: [pool www] child 11466 exited on signal 7 (SIGBUS) after 64.751715 seconds from start
[27-Apr-2018 00:00:57] WARNING: [pool www] child 11489 exited on signal 7 (SIGBUS) after 109.414997 seconds from start
[27-Apr-2018 00:01:03] WARNING: [pool www] child 11964 exited on signal 7 (SIGBUS) after 54.408242 seconds from start
[27-Apr-2018 00:01:04] WARNING: [pool www] child 11628 exited on signal 7 (SIGBUS) after 96.730458 seconds from start
[27-Apr-2018 00:01:04] WARNING: [pool www] child 11969 exited on signal 7 (SIGBUS) after 55.089391 seconds from start
[27-Apr-2018 00:01:05] WARNING: [pool www] child 11967 exited on signal 7 (SIGBUS) after 56.074089 seconds from start
[27-Apr-2018 00:01:05] WARNING: [pool www] child 11977 exited on signal 7 (SIGBUS) after 54.312263 seconds from start
[27-Apr-2018 00:01:05] WARNING: [pool www] child 12358 exited on signal 7 (SIGBUS) after 0.914795 seconds from start
[27-Apr-2018 00:01:06] WARNING: [pool www] child 11976 exited on signal 7 (SIGBUS) after 55.595475 seconds from start
[27-Apr-2018 00:01:06] WARNING: [pool www] child 11496 exited on signal 7 (SIGBUS) after 118.451371 seconds from start
[27-Apr-2018 00:01:06] WARNING: [pool www] child 11968 exited on signal 7 (SIGBUS) after 57.658934 seconds from start
[27-Apr-2018 00:01:06] WARNING: [pool www] child 12317 exited on signal 7 (SIGBUS) after 3.339715 seconds from start
[27-Apr-2018 00:01:06] WARNING: [pool www] child 12347 exited on signal 7 (SIGBUS) after 2.553786 seconds from start
[27-Apr-2018 00:01:10] WARNING: [pool www] child 12367 exited on signal 7 (SIGBUS) after 4.313226 seconds from start
[27-Apr-2018 00:01:10] WARNING: [pool www] child 12375 exited on signal 7 (SIGBUS) after 4.161080 seconds from start
[27-Apr-2018 00:01:47] WARNING: [pool www] child 11965 exited on signal 7 (SIGBUS) after 98.321196 seconds from start
[27-Apr-2018 00:02:11] WARNING: [pool www] child 12626 exited on signal 7 (SIGBUS) after 24.006747 seconds from start
[27-Apr-2018 00:02:38] WARNING: [pool www] child 12423 exited on signal 7 (SIGBUS) after 88.101144 seconds from start
[27-Apr-2018 00:02:41] WARNING: [pool www] child 12348 exited on signal 7 (SIGBUS) after 97.275009 seconds from start
[27-Apr-2018 00:03:11] WARNING: [pool www] child 11497 exited on signal 7 (SIGBUS) after 243.329014 seconds from start
[27-Apr-2018 00:05:21] WARNING: [pool www] child 12376 exited on signal 7 (SIGBUS) after 254.593460 seconds from start
[27-Apr-2018 00:05:24] WARNING: [pool www] child 12428 exited on signal 7 (SIGBUS) after 253.253943 seconds from start


Я не думаю, что таймаут, потому что бывает и секунда и 0.89 и 192

И таких записей
cat /var/log/php/php7.0-fpm.log | grep after | wc -l
38751

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

«php7 sigbus» в гугле говорит, что такая проблема была, есть и будет есть :)

Типовая ситуация - использование динамического кода.

Так же приводятся некоторые рецепты борьбы с этой проблемой.

vel ★★★★★
()
Ответ на: комментарий от vel

Что за «использование динамического кода»?

Короче посмотрел core этих процессов

gdb  /usr/sbin/php-fpm7.0 core-php-fpm7.0.17131
Reading symbols from /usr/sbin/php-fpm7.0...(no debugging symbols found)...done.
[New LWP 17131]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `php-fpm: pool www                                                            '.
Program terminated with signal SIGBUS, Bus error.
#0  0x0000555c6d53a4e5 in lex_scan ()


(gdb) bt
#0  0x0000555c6d53a4e5 in lex_scan ()
#1  0x0000555c6d5504f4 in zendlex ()
#2  0x0000555c6d5345c4 in zendparse ()
#3  0x0000555c6d537f2e in compile_file ()
#4  0x0000555c6d538223 in compile_filename ()
#5  0x0000555c6d602237 in ?? ()
#6  0x0000555c6d5b172b in execute_ex ()
#7  0x0000555c6d5613f8 in zend_call_function ()
#8  0x0000555c6d4ac03f in zif_call_user_func_array ()
#9  0x0000555c6d5f63ed in ?? ()
#10 0x0000555c6d5b172b in execute_ex ()
#11 0x0000555c6d605f67 in zend_execute ()
#12 0x0000555c6d570923 in zend_execute_scripts ()
#13 0x0000555c6d50f5a0 in php_execute_script ()
#14 0x0000555c6d3f34f5 in main ()




В общем затык в ядре php, в функции lex_scan(). Но что толку...

gobot ★★★★
() автор топика
Ответ на: комментарий от anonymous

Это везде пишут...нет никаких кешей. Потестировал ещё, ошибка эта появляется когда идет работа с шаблонами laravel. Причем чем чаще посылать запросы на сервер и чем больше шаблонов, тем чаще ошибка вылазит. Тестирую через apache bench

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

смысл в том, что php пишет файл с php-кодом и тут же его инклюдит через require().

Видимо у тебя что-то похожее на https://bugs.php.net/bug.php?id=52752

Либо нужно использовать блокировки файла, либо писать во временный файл, а потом его переименовывать.

vel ★★★★★
()
Ответ на: комментарий от gobot

В общем затык в ядре php, в функции lex_scan(). Но что толку...

Профилировать надо, где в скриптах накосячено. tideways (хотя для php7 недавно, вроде, и xhprof обновился — тогда на выбор или оба).

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Выявил, оказывается в BladeCompiler{} было isExpired(){return false} это я делал чтобы кеширование шаблонов не происходило в laravel

gobot ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.