Node.js MongoClient正在创建池大小设置为1的22个连接?

Node.js MongoClient正在创建池大小设置为1的22个连接?,node.js,mongodb,connection,Node.js,Mongodb,Connection,我的mongod出现了“太多”连接的问题 因此,我启动了一个新的数据库,以进行“干净的测试”,我的池大小为1,如下所示: MongoClient.connect( url, { server: { auto_reconnect: true, poolSize: 1, socketOptions: { keepAlive: 0 } } }, function( error, db ) { // save db instance } ) // when the app

我的mongod出现了“太多”连接的问题

因此,我启动了一个新的数据库,以进行“干净的测试”,我的池大小为1,如下所示:

MongoClient.connect( url, { server:
   { auto_reconnect: true,
     poolSize: 1,
     socketOptions: { keepAlive: 0 } } 
}, function( error, db ) { // save db instance } )

// when the app is terminated i call
db.close()
然后我就能发现两件有趣的事

1-当应用程序打开时,它会创建22个到我的主应用程序的连接和24个到我的副本的连接

2-当我终止我的应用程序时,还有8到主应用程序剩余,12到辅助应用程序剩余

我做错什么了吗

关于如何清除那些“留守”连接,有什么建议吗

mongod版本:v2.6.5

mongodb包版本:1.4.19

编辑:

使用{}作为选项会产生相同的结果,因此选项似乎没有任何区别

编辑2:


完整测试代码:

@wdberkeley确实,这些是来自副本和仲裁器的连接

我不知道这些会“算数”

我仍然认为我的问题是连接太多,但实际上RAM太少(:

问题解决了


很抱歉接受了我自己的答案,希望我能把你的答案标记为“wdberkeley”

需要更多的代码和上下文!它是在循环中(还是某种递归函数)?不是循环,也不是递归函数。在应用程序启动后调用1次。您是分叉子进程,还是使用群集;其他节点进程是否在主进程退出后仍在运行?您是连接到副本中的每个节点并让驱动程序处理它,还是使用mongos?根本不是,我正在编辑问题以添加完整的测试代码。在哪里您的连接数是从哪里来的?这些很可能是涉及复制的后台线程的连接。