因为遗留问题有项目用到了php-fpm,每台机器设置了800个进程,每个进程默认驱动会保持一个长连接,导致客户端会话数过大,每台服务器需要占用800个链接会话。
所以找了很久的解决方案最终在官方文档中发现有该配置可以关闭长连接模式,可以解决这个问题。
$manager = new MongoDB\Driver\Manager(URI, [], ['disableClientPersistence' => true]);
默认情况下为false,这将保留现有行为。指定true将强制Manager创建一个新的libmongoc客户端,然后当Manager对象被释放时(例如垃圾回收、PHP请求结束),该客户端将被销毁(即套接字关闭)