最近我不得不面对 php-fpm 的问题,即可用的活动进程不断增长。它已经达到 max_children 然后重新启动。
该图显示了来自三个服务器的池状态的“活动进程”值(循环平衡)。
配置:
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 2000
凌晨 1 点,我将配置更改为:
pm.max_children = 500
pm.max_requests = 500
此池处理约 4k 请求/分钟(适用于所有服务器)。我必须承认,其他池在相同设置下工作正常(最大池处理约 12k 请求/分钟)。
什么原因造成如此奇怪的行为?
答案1
我认为您应该在池配置中启用“slowlog”和“request_slowlog_timeout”。似乎您的后端卡在某些硬请求上。可能是因为数据库请求或磁盘 I/O 较长