Я новичок в PHP-FPM, и я заметил, что через случайные промежутки времени он, похоже, просто блокируется.
[26-Dec-2014 22:50:16] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 921 total children
[26-Dec-2014 22:50:17] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 931 total children
[26-Dec-2014 22:50:18] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 941 total children
[26-Dec-2014 22:50:19] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 951 total children
[26-Dec-2014 22:50:20] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 961 total children
[26-Dec-2014 22:50:21] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 971 total children
[26-Dec-2014 22:50:22] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 981 total children
[26-Dec-2014 22:50:23] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 991 total children
[26-Dec-2014 22:50:24] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 1001 total children
[26-Dec-2014 22:50:25] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 1011 total children
[26-Dec-2014 22:50:26] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 1021 total children
[26-Dec-2014 22:50:27] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 9 idle, and 1031 total children
Это происходит на первый взгляд случайно (у нас может быть 50 человек на сайте в минуту или 200), когда это действительно происходит, PHP-FPM перестает обслуживать запросы (если посмотреть выше, похоже, что он не может удовлетворить спрос)
Даже если я перезапущу PHP-FPM, он останется заблокированным на короткое время.
[26-Dec-2014 22:52:41] NOTICE: Terminating ...
[26-Dec-2014 22:52:41] NOTICE: exiting, bye-bye!
[26-Dec-2014 22:52:41] NOTICE: fpm is running, pid 17484
[26-Dec-2014 22:52:41] NOTICE: ready to handle connections
[26-Dec-2014 22:53:15] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 53 total children
[26-Dec-2014 22:53:16] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 61 total children
[26-Dec-2014 22:53:17] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 71 total children
[26-Dec-2014 22:53:18] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 81 total children
[26-Dec-2014 22:57:01] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 109 total children
[26-Dec-2014 22:58:09] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 124 total children
[26-Dec-2014 22:58:10] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 132 total children
[26-Dec-2014 22:58:11] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 142 total children
[26-Dec-2014 22:58:12] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 152 total children
[26-Dec-2014 22:58:13] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 162 total children
[26-Dec-2014 22:58:14] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 172 total children
[26-Dec-2014 22:58:15] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 182 total children
[26-Dec-2014 22:58:16] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 192 total children
[26-Dec-2014 22:58:17] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 202 total children
Вот мои настройки
pm.max_children = 2000
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 200
pm.max_requests = 500
Я пробовал их также в
pm.max_children = 2000
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 50
pm.max_requests = 500
и несколько других комбинаций, но проблема все еще видна.
Сервер 32-ядерный, память 64 ГБ. Использование Apache и FastCGI
Спасибо
попробуй это:
Примечание. Используется, только если для вечера установлено значение «динамический».
pm.start_servers = min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm = dynamic
pm.max_children = 500
pm.start_servers = 60
pm.min_spare_servers = 20
pm.max_spare_servers = 100
pm.max_requests = 10000;
или вот так:
pm = ondemand
pm.max_children = 500
pm.max_requests = 10000
в любом случае вам нужно использовать кеш.