我使用 PHP7.2-FPM 设置了 NGINX,但遇到了突发请求问题。平均活动进程 (fpm 子进程) 数量为 15。
我有这些设置(48 核服务器):
listen.backlog = 1024
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 5000
我还测试了最少 256 个备用服务器,这降低了但并没有解决 的问题Resource temporarily unavailable
。显然,这不是用于生产的设置,只是为了看看这么多的工作人员是否能处理突发事件的大小。
我也尝试了 65536 的 listen.backlog,但没有什么变化。
有什么办法吗?如果它将请求排队,就不会出现任何问题。
编辑:我刚刚注意到 fpm-status 总是报告max listen queue
为 0
答案1
通过增加系统来解决net.core.somaxconn
。fpm-status 似乎在与方面出现故障max listen queue
,它始终显示 0。