Vesta 2.0 is coming soon! See our progress update: https://vestacp.com/docs/vesta-2-update
PHP-FPM + nginx -кратковременные падения при нагрузке
PHP-FPM + nginx -кратковременные падения при нагрузке
Добрый день!
Настраиваю dedicated сервер 2 ядра (4 потока), 8 Gb RAM, 512 swap, Centos 7.
Установил Vestacp, связка nginx+php-fpm, APC, база Mariadb.
На сервере десяток сайтов, два с большой посещаемостью, остальные меньше 50 человек в день.
Суммарная посещаемость в районе 10000 просмотров в сутки.
Проблема наблюдается следующая: без какой-либо закономерности сайты (вероятно под нагрузкой, но не факт) начинают выдавать ошибку 500 в течение минут 10-15, затем работают нормально. Если в течение этих 10-15 минут я делаю рестарт php-fpm через панель, то все грузится хорошо.
Перерыл всякие блоги и форумы на предмет настроек php-fpm, везде рекомендации сводятся к глобальному файлу настроек www.conf, но Vestacp создает настройки пулов автоматически под каждый сайт и вот здесь как мне кажется и зарыта моя проблема.
Посоветуйте настройки pm.max_children, pm.start_servers, pm.min_spare_servers и pm.max_spare_servers для каждого пула(с учетом двух более загруженных сайтов) и что в www.conf при этом должно быть, чтобы php-fpm не забивал всю память?
Сейчас www.conf выглядит так:
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 500
В разделе server VESTA показаны следующие цифры по загрузке RAM:
MariaDB: 4109 mb
PHP-FPM: 4927 mb
При рестарте PHP-FPM забирает в районе 3000 Mb, и потом довольно быстро раздувается и лезет в swap.
Еще почему-то висит служба NAMED и она всегда показывает одни и те же цифры что и php-fpm, хотя она выключена (из панели при этом если ее пытаться "выключить" - ничего не происходит, очевидно баг)
В логах ничего особенного нет, кроме вот таких варнингов:
server reached pm.max_children setting (25), consider raising it
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 7 idle, and 23 total children
База настроена в соответствии с mysqltuner.
Настраиваю dedicated сервер 2 ядра (4 потока), 8 Gb RAM, 512 swap, Centos 7.
Установил Vestacp, связка nginx+php-fpm, APC, база Mariadb.
На сервере десяток сайтов, два с большой посещаемостью, остальные меньше 50 человек в день.
Суммарная посещаемость в районе 10000 просмотров в сутки.
Проблема наблюдается следующая: без какой-либо закономерности сайты (вероятно под нагрузкой, но не факт) начинают выдавать ошибку 500 в течение минут 10-15, затем работают нормально. Если в течение этих 10-15 минут я делаю рестарт php-fpm через панель, то все грузится хорошо.
Перерыл всякие блоги и форумы на предмет настроек php-fpm, везде рекомендации сводятся к глобальному файлу настроек www.conf, но Vestacp создает настройки пулов автоматически под каждый сайт и вот здесь как мне кажется и зарыта моя проблема.
Посоветуйте настройки pm.max_children, pm.start_servers, pm.min_spare_servers и pm.max_spare_servers для каждого пула(с учетом двух более загруженных сайтов) и что в www.conf при этом должно быть, чтобы php-fpm не забивал всю память?
Сейчас www.conf выглядит так:
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = apache
group = apache
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 500
В разделе server VESTA показаны следующие цифры по загрузке RAM:
MariaDB: 4109 mb
PHP-FPM: 4927 mb
При рестарте PHP-FPM забирает в районе 3000 Mb, и потом довольно быстро раздувается и лезет в swap.
Еще почему-то висит служба NAMED и она всегда показывает одни и те же цифры что и php-fpm, хотя она выключена (из панели при этом если ее пытаться "выключить" - ничего не происходит, очевидно баг)
В логах ничего особенного нет, кроме вот таких варнингов:
server reached pm.max_children setting (25), consider raising it
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 7 idle, and 23 total children
База настроена в соответствии с mysqltuner.
Re: PHP-FPM + nginx -кратковременные падения при нагрузке
При этом какие-то ошибки какие-то в логе php-fpm есть?Проблема наблюдается следующая: без какой-либо закономерности сайты (вероятно под нагрузкой, но не факт) начинают выдавать ошибку 500 в течение минут 10-15, затем работают нормально.
500 ошибку стоит рассматривать в виде ошибок сервера, точнее бэкенда - в этой роли у нас как раз php-fpm.
Re: PHP-FPM + nginx -кратковременные падения при нагрузке
в том-то и дело что в логах ничего нет, кроме того что я написал ранее:
server reached pm.max_children setting (25), consider raising it
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 7 idle, and 23 total children.
Еще такое бывает(но я думаю это когда я делаю рестарт службы):
child 3677 started
[26-Jan-2016 09:14:19] WARNING: child 3033 exited on signal 11 (SIGSEGV) after 288.965287 seconds from start
[26-Jan-2016 09:14:19] NOTICE: child 3679 started
[26-Jan-2016 09:14:38] WARNING: child 3029 exited on signal 11 (SIGSEGV) after 308.885845 seconds from start
[26-Jan-2016 09:14:38] NOTICE: child 3685 started
[26-Jan-2016 09:14:52] WARNING: child 3527 exited on signal 11 (SIGSEGV) after 167.554906 seconds from start
[26-Jan-2016 09:14:52] NOTICE: child 3687 started
[26-Jan-2016 09:14:55] WARNING: child 3536 exited on signal 11 (SIGSEGV) after 166.465271 seconds from start
[26-Jan-2016 09:14:55] NOTICE: child 3688 started
[26-Jan-2016 09:14:58] WARNING: child 3546 exited on signal 11 (SIGSEGV) after 163.304133 seconds from start
[26-Jan-2016 09:14:58] NOTICE: child 3689 started
[26-Jan-2016 09:15:00] WARNING: child 2891 exited on signal 11 (SIGSEGV) after 468.862665 seconds from start
[26-Jan-2016 09:15:00] NOTICE: child 3690 started
server reached pm.max_children setting (25), consider raising it
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 7 idle, and 23 total children.
Еще такое бывает(но я думаю это когда я делаю рестарт службы):
child 3677 started
[26-Jan-2016 09:14:19] WARNING: child 3033 exited on signal 11 (SIGSEGV) after 288.965287 seconds from start
[26-Jan-2016 09:14:19] NOTICE: child 3679 started
[26-Jan-2016 09:14:38] WARNING: child 3029 exited on signal 11 (SIGSEGV) after 308.885845 seconds from start
[26-Jan-2016 09:14:38] NOTICE: child 3685 started
[26-Jan-2016 09:14:52] WARNING: child 3527 exited on signal 11 (SIGSEGV) after 167.554906 seconds from start
[26-Jan-2016 09:14:52] NOTICE: child 3687 started
[26-Jan-2016 09:14:55] WARNING: child 3536 exited on signal 11 (SIGSEGV) after 166.465271 seconds from start
[26-Jan-2016 09:14:55] NOTICE: child 3688 started
[26-Jan-2016 09:14:58] WARNING: child 3546 exited on signal 11 (SIGSEGV) after 163.304133 seconds from start
[26-Jan-2016 09:14:58] NOTICE: child 3689 started
[26-Jan-2016 09:15:00] WARNING: child 2891 exited on signal 11 (SIGSEGV) after 468.862665 seconds from start
[26-Jan-2016 09:15:00] NOTICE: child 3690 started
Re: PHP-FPM + nginx -кратковременные падения при нагрузке
Проблема так и остается, сейчас настройки php-fpm для отдельных сайтов выставлены на минимум:
pm = ondemand //(или dynamic, в зависимости от посещаемости сайта)
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 200
request_terminate_timeout = 120s
В мониторинге named так и висит, повторяя значения php-fpm. Память не разрастается, php-fpm и база стабильно показывают такие цифры:
[img]fod.nichost.ru/vesta.png[/img]
Вот так падения выглядят на исходящем трафике:
[img]fod.nichost.ru/vesta2.png[/img]
куда еще копать, посоветуйте.
pm = ondemand //(или dynamic, в зависимости от посещаемости сайта)
pm.max_children = 4
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 200
request_terminate_timeout = 120s
В мониторинге named так и висит, повторяя значения php-fpm. Память не разрастается, php-fpm и база стабильно показывают такие цифры:
[img]fod.nichost.ru/vesta.png[/img]
Вот так падения выглядят на исходящем трафике:
[img]fod.nichost.ru/vesta2.png[/img]
куда еще копать, посоветуйте.
Re: PHP-FPM + nginx -кратковременные падения при нагрузке
Приветствую, подскажите как нибудь решили эту проблему?berllc wrote:В мониторинге named так и висит, повторяя значения php-fpm. Память не разрастается, php-fpm и база стабильно показывают такие цифры:
куда еще копать, посоветуйте.
Память с такими настройками все так же стабильна?
У меня вот тоже память что то жрет не пойму что, до полного зависания DB.