У меня есть сервер под управлением Apache/2.2.22 (Debian), PHP 5.6.17 как FPM и MySQL 5.6.25.
Проект выполняется с использованием CMS под названием Redaxo (я не думаю, что это важно, но я все равно скажу). В Redaxo есть некоторые функции, которые занимают некоторое время (например, удаление кеша и перестройка занимает 1-2 минуты). В это время, когда другие пользователи приходят на сайт, FPM падает с помощью 500 Internal Server Error
, и мне приходится перезагружать страницу несколько раз, пока ошибка сервера не исчезнет, и процесс завершен.
Я заметил, что это произойдет только в том случае, если слишком много пользователей находятся на сайте в одно и то же время и только при выполнении тяжелых операций.
10 пользователей в то же время просто занимаются серфингом = Нет проблемы
10 пользователей в то же время просто занимаются серфингом, а удаление кеша = 500 Ошибка для всех.
Я проверил это, запретив веб-сайт для всех, кроме меня (.htaccess deny/allow with ip). Затем я сделал тяжелую операцию и не испытывал никаких проблем. Как только несколько человек были на сайте снова, проблема была там снова.
Что это может быть? Какая информация вам нужна от меня?
Эти значения устанавливаются (не комментируются) в php-fpm.conf
[global]
pid = /run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
emergency_restart_threshold = 0
include=/etc/php5/fpm/pool.d/*.conf
Эти значения устанавливаются (не комментируются) в конкретном проекте fpm.conf
[projectname]
user = projectname
group = projectname
listen = /var/run/php5-fpm-projectname.sock
listen.owner = projectname
listen.group = projectname
listen.mode = 0660
pm = dynamic
pm.max_children = 150
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 30
chdir = /
php_value[upload_max_filesize] = 128M
php_value[max_post_size] = 128M
php_value[max_execution_time] = 180
php_value[memory_limit] = 256M
script, когда он терпит неудачу, сильно влияет на создание MySQL и файлов, если это помогает? Но он довольно большой, поэтому я не уверен, что я должен опубликовать его здесь? Или, если это даже проблема?
В журнале ошибок apache указан либо этот
[Tue Feb 09 10:54:01 2016] [error] [client {IP}] (104)Connection reset by peer: FastCGI: comm with server "/fcgi-bin-php5-fpm-projectnmae" aborted: read failed
[Tue Feb 09 10:54:01 2016] [error] [client {IP}] FastCGI: incomplete headers (0 bytes) received from server "/fcgi-bin-php5-fpm-projectnmae"
или
[Tue Feb 09 11:00:46 2016] [error] [client {IP}] FastCGI: incomplete headers (0 bytes) received from server "/fcgi-bin-php5-fpm-projectname"
[Tue Feb 09 11:00:48 2016] [error] [client {IP}] (104)Connection reset by peer: FastCGI: comm with server "/fcgi-bin-php5-fpm-projectname" aborted: read failed
fpm-log
говорит следующее. Конечно, всегда разные тайминги
[10-Feb-2016 09:40:59] WARNING: [pool projectname] child 10970 exited on signal 7 (SIGBUS) after 50.186611 seconds from start
[10-Feb-2016 09:40:59] NOTICE: [pool projectname] child 11092 started
Иногда там появляется предупреждение, подобное этому
[09-Feb-2016 11:00:41] WARNING: [pool projectname] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 6 total children
[09-Feb-2016 11:00:42] WARNING: [pool projectname] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 7 total children
Вот еще информация об отладке
[18-Feb-2016 17:42:01] WARNING: [pool projectname] child 9088 exited on signal 7 (SIGBUS) after 70.130564 seconds from start
[18-Feb-2016 17:42:01] NOTICE: [pool projectname] child 9205 started
[18-Feb-2016 17:43:55] WARNING: [pool projectname] child 9099 said into stderr: "NOTICE: PHP message: PHP Notice: Undefined offset: 1181 in /var/www/projectname/htdocs/redaxo/include/classes/class.ooarticle.inc.php on line 44"
[18-Feb-2016 17:43:55] WARNING: [pool projectname] child 9099 said into stderr: "NOTICE: PHP message: PHP Warning: Invalid argument supplied for foreach() in /var/www/projectname/htdocs/redaxo/include/classes/class.ooredaxo.inc.php on line 134"
[18-Feb-2016 17:43:55] WARNING: [pool projectname] child 9099 exited on signal 7 (SIGBUS) after 183.838886 seconds from start
[18-Feb-2016 17:43:55] NOTICE: [pool projectname] child 9330 started
[18-Feb-2016 17:44:00] WARNING: [pool projectname] child 9101 exited on signal 7 (SIGBUS) after 188.987954 seconds from start
[18-Feb-2016 17:44:00] NOTICE: [pool projectname] child 9336 started