При работе над обновлением до PHP 5.5 у меня возникла проблема с php-fpm.Процессы PHP-FPM застряли от внезапного
Я создал новый веб-узел с новой версией PHP, и я подписываю его на балансировщике нагрузки, чтобы проверить его в prod. Все работает нормально до тех пор, пока не начнется много процессов php-fpm (через ~ 1 час). В дальнейшем я получаю таймауты.
Я изменил дистрибутив с Debian на Ubuntu и обновился до PHP 5.5. Кроме того, новый сервер такой же, как и раньше (когда все работает/работает).
Я попытался подписаться на два новых веб-узла, и они будут застревать одновременно. Я думаю, что это может быть связано с внезапными медленными ответами из базы данных (поскольку это единственное, что они разделяют).
Однако, я бы хотел, чтобы php-fpm не разбился, поэтому он будет работать, когда база данных будет в порядке.
Чтобы исправить это, я могу перезапустить службу php-fpm, но это не прочный план.
ps aux | grep php
показывает мне:
root 13919 0.0 0.4 423472 19736 ? Ss Dec08 0:10 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 14087 0.0 3.1 474972 127284 ? S Dec08 0:54 php-fpm: pool www
www-data 14088 0.0 2.3 446944 94956 ? S Dec08 0:50 php-fpm: pool www
www-data 14089 0.1 2.2 443816 92644 ? S Dec08 1:03 php-fpm: pool www
www-data 14090 0.0 3.0 474208 124716 ? S Dec08 0:44 php-fpm: pool www
www-data 14092 0.0 3.1 478284 129060 ? S Dec08 0:41 php-fpm: pool www
www-data 14099 0.0 2.5 459700 105224 ? S Dec08 0:14 php-fpm: pool www
www-data 14111 0.0 2.0 439876 84952 ? S Dec08 0:06 php-fpm: pool www
www-data 14114 0.0 0.4 427220 18472 ? S Dec08 0:00 php-fpm: pool www
www-data 14115 0.0 0.4 427220 18380 ? S Dec08 0:00 php-fpm: pool www
www-data 14116 0.0 0.4 427184 18936 ? S Dec08 0:00 php-fpm: pool www
www-data 14117 0.0 0.4 427204 18904 ? S Dec08 0:00 php-fpm: pool www
www-data 14118 0.0 0.4 427220 18372 ? S Dec08 0:00 php-fpm: pool www
www-data 14119 0.0 0.4 427184 18832 ? S Dec08 0:00 php-fpm: pool www
www-data 14120 0.0 0.4 427188 18960 ? S Dec08 0:00 php-fpm: pool www
www-data 14121 0.0 0.4 427220 18384 ? S Dec08 0:00 php-fpm: pool www
www-data 14122 0.0 0.4 427200 18932 ? S Dec08 0:00 php-fpm: pool www
www-data 14123 0.0 0.4 427236 18488 ? S Dec08 0:00 php-fpm: pool www
www-data 14124 0.0 0.4 427220 18392 ? S Dec08 0:00 php-fpm: pool www
www-data 14125 0.0 0.4 427220 18384 ? S Dec08 0:00 php-fpm: pool www
www-data 14126 0.0 0.4 427204 18820 ? S Dec08 0:00 php-fpm: pool www
www-data 14127 0.0 0.4 427220 18484 ? S Dec08 0:00 php-fpm: pool www
www-data 14128 0.0 0.4 427204 18920 ? S Dec08 0:00 php-fpm: pool www
www-data 14129 0.0 0.4 427188 18904 ? S Dec08 0:00 php-fpm: pool www
www-data 14130 0.0 0.4 427220 18372 ? S Dec08 0:00 php-fpm: pool www
www-data 14131 0.0 0.4 427188 18920 ? S Dec08 0:00 php-fpm: pool www
www-data 14132 0.0 0.4 427220 18372 ? S Dec08 0:00 php-fpm: pool www
www-data 14133 0.0 0.4 427204 18936 ? S Dec08 0:00 php-fpm: pool www
www-data 14134 0.0 0.4 427220 18388 ? S Dec08 0:00 php-fpm: pool www
www-data 14135 0.0 0.4 427220 18368 ? S Dec08 0:00 php-fpm: pool www
www-data 14136 0.0 0.4 427184 18936 ? S Dec08 0:00 php-fpm: pool www
Как вы можете видеть, 24 процессов работает уже в течение 0 секунд (HTOP говорит мне это около 2 мс). Они останутся такими навсегда. Все они появились одновременно.
Мой конфиг:
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
log_level = debug
user = www-data
group = www-data
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 7
pm.max_requests = 500
Кроме того, я никогда не видел ничего в PHP-fpm.log (только NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
)
Кто-нибудь?
EDIT: Я попытался запустить как ondemand
и dynamic
процесса менеджер
'/ var/log/php5-fpm.log' пуст. Мои журналы ошибок php не регистрируют ничего интересного (только ошибки из моего приложения). –
попробуйте это в своей оболочке: 'for i in {1..100}; делать php-fpm; killall php-fpm; done' –
Ну, мне легко убить их и заставить его снова работать. Я могу просто перезапустить службу php-fpm. Но это только помогает мне, пока он снова не сработает. Я ищу причину этого. –