文档首页 > > 常见问题> 数据库连接> 如何查询及限制连接数

如何查询及限制连接数

分享
更新时间: 2020/04/21 GMT+08:00

下面以副本集实例为例,介绍如何查询实例的连接使用情况,以及设置连接池的连接数。

查询当前连接数

根据您购买的文档数据库实例规格不同,最大连接数也不同。

最大连接数是指实例中每个节点的最大连接数。

示例:您购买了2核4GB规格的三节点副本集实例,那么该实例的Primary节点和Secondary节点的最大连接数均为1000,Hidden节点由于其架构特殊性,不对外提供服务。

使用Mongo Shell连接副本集主节点后,执行命令db.serverStatus().connections查询节点当前连接数。

replica:PRIMARY> db.serverStatus().connections
{ "current" : 7, "available" : 398, "totalCreated" : 818364 }

您需要关注以下参数及对应的值:

  • current:当前已经建立的连接数。
  • available:当前可用的连接数。

查询当前连接来源

  1. 使用Mongo Shell连接副本集主节点后,切换至admin数据库。
    replica:PRIMARY> use admin
  2. 执行命令db.runCommand({currentOp: 1, $all: true}),查询连接来源。

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

    图1 输出结果

如何限制终端的连接数

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

示例:使用Mongo Shell连接副本集实例时,限制连接池的连接数为10。

mongo "mongodb://rwuser:xxxxxxxxxx@192.168.168.116:8635,192.168.200.147:8635/test?authSource=admin&replicaSet=replica&maxPoolSize=10"

图2 限制连接数

关于不同语言的客户端如何限制连接池的数量,请参考MongoDB官网各语言客户端的API文档。

分享:

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问