PHP Web 服务中的 MongoDB 连接过多问题

Too many MongoDB connections issue in PHP web services

提问人:Aadil Awan 提问时间:11/15/2023 更新时间:11/15/2023 访问量:26

问:

我们在 Laravel/Lumen 中为 Azure 图形 API 编写了 Web 服务/回调。我们的 Web 服务托管在 AWS ASG 中,服务器上有 ApachePHP-FPM。ASG 中的最小池数为 4,最大池数设置为 10。对于数据库,我们使用的是MongoDB,它也与Lumen API并行托管在AWS中。我们在 Lumen 中使用 jenssegers/mongodb 包进行数据库连接/查询。我们每秒收到来自 Azure 的大量请求。我们的项目与电子邮件/邮箱有关,因此流量/请求持续达到~60K/秒。

问题是我们的MongoDB连接正在迅速增加,达到40K。如何管理这些连接?由于 MongoDB 连接限制为 50K,因此我们还预计未来随着产品扩展,来自 Azure 的流量会增加。

早期的 PHP-FPM 是使用动态 PM 设置的,我们现在已将其更改为具有以下配置的按需 PM

pm = ondemand
pm.max_children = 100  
pm.process_idle_timeout = 20s;  
pm.min_spare_servers = 10  
pm.max_spare_servers = 20  
pm.start_servers = 10;

这减少了连接数量,但并不显着(大约 ~5K)。

PHP Apache AWS-Application-Load-Balancer Jenssegers-MongoDB

评论

1赞 Markus Zeller 11/15/2023
这些联系是如何发生的?每个请求?您是否使用队列和工作线程?

答: 暂无答案