
# 排查DDS实例连接数耗尽的问题
数据库连接数表示应用程序可以同时连接数据库的数量，与您应用程序或者网站能够支持的最大用户数没有关系。
- 对于集群实例，一般指客户端同mongos之间的连接数。
- 对于副本集实例，一般指客户端同Primary节点和Secondary节点之间的连接数。
 
#### 问题现象
当DDS实例的连接数已满时，新发起的连接请求将无法被响应，从而导致实例连接失败。
- 使用Mongo Shell连接实例时，出现如下提示，表示当前连接池的连接数已满。 ![](https://support.huaweicloud.com/bestpractice-dds/zh-cn_image_0000001694933833.png "点击放大")
  
- 使用Python连接实例时，出现以下提示，表示当前连接池的连接数已满。 pymongo.errors.ServerSelectionTimeoutError: connection closed, connection closed
  

- 查看[实例监控](https://support.huaweicloud.com/usermanual-dds/dds_03_0076.html)，发现实例连接数确实被耗尽。
 
#### 解决方法
经过上述步骤确认为连接数耗尽问题后，需要根据突发流量与长期业务两种情况分别处理。
- 突发流量造成的连接数满，考虑[重启实例或节点](https://support.huaweicloud.com/usermanual-dds/dds_03_0003.html)释放当前连接。并同时排查客户端连接，是否存在大量重试请求，如果是大量重试请求引起的连接数耗尽，考虑修改客户端参数（修改重试逻辑，增大超时重试时长），从而避免连接数积压。
  ![](https://support.huaweicloud.com/bestpractice-dds/public_sys-resources/caution_3.0-zh-cn.png)
  重启实例的操作会将实例的节点进行轮转重启，每个节点会有30秒左右的闪断，如果集合的数量较多（超过1万），闪断时间也会随之变长，重启前请做好业务安排并确保应用有重连机制。
  
- 针对长期业务导致的连接数耗尽，可以适当[上调最大连接数](https://support.huaweicloud.com/usermanual-dds/zh-cn_topic_configuration.html)（修改"**net.maxIncomingConnections** "的值，该参数修改后实时生效），保证每次调整幅度在20%以内，调整后[观察负载变化](https://support.huaweicloud.com/usermanual-dds/dds_03_0076.html)。如果发现上调连接数后负载较高，说明实例负载已经达到瓶颈，请及时进行[规格扩容](https://support.huaweicloud.com/usermanual-dds/zh-cn_topic_0104472218.html)。
 
