软件下载吧文章资讯

分类分类

MongoDB最大连接数设置失效的异常分析过程与解决方法

2024-02-13 10:24作者:下载吧

背景介绍:

查询MongoDB配置参数,可以知道关于最大连接数的参数是maxConns。但是连接实例后,查看支持的最大连接数,还是默认的819。

说明:最大连接数是由maxConn (maxIncomingConnections)和操作系统单个进程能打开的最大文件描述符数总量的80%决定的,取两个之间的最小值。默认单个进程能打开的最大文件描述符数为1024,1024*80% = 819.2 取整数819。所以最大可以支持的并发连接数为819。

案例重现

以下为本次测试MongoDB案例配置的参数。

MongoDB最大连接数设置失效的异常分析过程与解决方法

启动后查看最大连接数。

运行命令:db.serverStatus().connections

MongoDB最大连接数设置失效的异常分析过程与解决方法

Current表示当前到实例上正在运行的连接数。

Available表示当前实例还可以支持的并发连接数。

也就是说此实例最大能支持的并发连接数为:Current+available=3+816=819.

所以设置的maxConns参数无效。所以设置的maxConns参数无效!所以设置的maxConns参数无效!所以设置的maxConns参数无效!

答案求索

此时查看查看网上相关资料,大部分集中在 Linux系统最大文件描述符数。查看我们系统配置,此时已经是65535了。不是系统最大文件描述符数限制的了。

MongoDB最大连接数设置失效的异常分析过程与解决方法

转个弯,因为我们是为操作系统是 centos 7 ,所以我们的mongodb服务是透过systemctl来管理的。那如果是通过service 命令来管理此服务呢?

测试1 测试用service来管理mongodb 服务 对最大连接数的影响

(1) 在/etc/init.d目录下创建名为mongodbtest0903的服务;

(2) 服务的配置如下:

MongoDB最大连接数设置失效的异常分析过程与解决方法

(3) 赋予执行权限,然后开启服务

MongoDB最大连接数设置失效的异常分析过程与解决方法

(4) 此时查看连接数为2500(为maxConns参数值)

MongoDB最大连接数设置失效的异常分析过程与解决方法

(5) 关闭 mongodb 服务

MongoDB最大连接数设置失效的异常分析过程与解决方法

以上说明用service 来管理服务,最大连接数参数起作用了。

测试2 如果直接用Mongodb command打开呢?

(1) 直接开启

MongoDB最大连接数设置失效的异常分析过程与解决方法

(2)此时查看连接数为2500(为maxConns参数值)

MongoDB最大连接数设置失效的异常分析过程与解决方法

(3)关闭此服务

MongoDB最大连接数设置失效的异常分析过程与解决方法

以上说明直接开启Mongodb服务,最大连接数参数起作用了。

通过service和 mongodb命令启动服务,最大连接数都是设置的参数,而通过systemctl来开启此服务就变成了默认的819.

探究

我们来具体分析下systemctl 开启的 mongodb 服务(此服务定义为mongodbtest0903)。

(1)查看此服务的所有配置细节的命令

systemctl show mongodbtest0903.service
展开全部

相关文章

说两句网友评论
    我要跟贴
    取消