文档

排查因连接数耗尽导致的数据库连接问题

更新时间:

当MongoDB实例的连接数被耗尽后,新发起的连接请求将无法被响应,本文介绍如何排查因连接数耗尽导致的数据库连接问题。

故障表现

不同的MongoDB实例规格支持的最大连接数有所不同,详情请参见实例规格概述

  • 部署的应用程序突然无法连接数据库。

  • 已正确设置了白名单,通过Mongo Shell连接数据库时,提示如下错误:

    2019-07-10T10:30:43.597+0800 E QUERY    [js] Error: network error while attempting to run command 'isMaster' on host 'dds-bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717'  :
    connect@src/mongo/shell/mongo.js:328:13
    @(connect):1:6
    exception: connect failed
  • 已正确设置了白名单,通过DMS连接数据库时,提示如下错误:

检查连接数是否被耗尽

  1. 访问MongoDB副本集实例列表MongoDB分片集群实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在目标实例页面的左侧导航栏,单击监控信息

  3. 监控信息页面,查看实例当前的连接数信息。

    说明

    实例为分片集群实例时,您需要在页面右上角选择业务当前使用的Mongos节点。

    不同规格的最大连接数,请参见实例规格表

解决方法

您可以通过重启实例或节点来临时释放所有的连接。为避免再次出现该问题,重启后建议您参考下述方法进行调整:

说明

重启实例的操作会将实例的节点进行轮转重启,每个节点会有30秒左右的闪断,如果集合的数量较多(超过1万),闪断时间也会随之变长,重启前请做好业务安排并确保应用有重连机制。