我们正在从单个副本集迁移到分片,并且遇到了一些问题。我们有3个mongos实例,3个配置服务器和15个数据节点(5个分片和3个副本)。我们看到查询性能确实很差,看着mongos实例,我发现每个实例有25k个开放连接!
例如,我看到类似的日志行
[listener] connection accepted from 10.10.36.122:35098 #521622 (23858 connections now open)
和
[conn498875] end connection 10.10.36.122:41520 (23695 connections now open)
作为参考,我们还有另一个几乎完全相同的环境,我们尚未转移到分片,它显示了约250个开放连接。
应用程序代码使用的是nodejs驱动程序,并且使用的连接网址看起来像
mongodb://mongos0.some.internal.domain:27017,mongos1.some.internal.domain:27017,mongos2.some.internal.domain:27017
我对于如何追踪这个问题有点茫然。这不是连接到mongos的正确方法吗?
编辑(7/7/18)
经过一些试验,我发现我们使用的connectTimeoutMS
为180000(3分钟)。删除该值可解决问题。但是,尚不清楚为什么此配置可用于独立副本集,但在分片时会引起问题。谁能解释这是怎么回事?