您可以通过DMS或 Mongo Shell 登陆MongoDB数据库,本文介绍如何查询连接使用情况以及设置连接池的连接数。

查询当前连接数

根据您购买的MongoDB实例规格不同,实例的最大连接数也不同,详情请参考实例规格

通过 Mongo Shell 连接实例,执行命令 db.serverStatus().connections
mgset-123456:PRIMARY> db.serverStatus().connections
{
        "current" : 1,
        "available" : 999,
        "internal_current" : 10,
        "internal_available" : 990,
        "totalCreated" : 632
				
说明 您需要关注以下参数及对应的值。
  • "current" :当前已经建立的连接数。
  • "available" :当前可用的连接数。

查询当前连接来源

  1. 通过 Mongo Shell 连接实例,切换至admin数据库。
    use admin
  2. 执行命令db.runCommand({currentOp: 1, $all: true})
    mgset-123456:PRIMARY> db.runCommand({currentOp: 1, $all:[{"active" : true}]})
    					

通过分析命令的输出结果,您可以查询每个连接对应的来源IP地址。从而得出各个终端跟MongoDB实例分别建立了多少连接。

如何限制终端的连接数

云数据库MongoDB支持通过 Connection String URI 登录数据库。通过 Connection String URI 登录数据库时,在URI末尾加上&maxPoolSize=<integer>即可设置连接池的连接数。

Mongo Shell 连接示例(连接池的连接数限制为10):
mongo "mongodb://root:xxxxxx@dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717,dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-xxxxxx&maxPoolSize=10"
说明 关于不同语言的客户端如何限制连接池的数量,请参考MongoDB官网各语言客户端的API文档。