mongodb设置最大连接数、最大连接数修改

MongoDB (4.5万) 2016-12-17 23:14:02

Windows系统下,MongoDB默认最大连接数是20000。而Linux系统中MongoDB默认最大连接数是819,如果需要修改其最大连接数,我们需要做两部分调整:linux单进程允许打开的最大文件数和MongoDB实例允许的最大连接数。

调整办法是在/etc/init.d/rc.local中添加配置项:

1.文件限制:ulimit -HSn 2048

2.MongoDB开启启动:/.../mongodb/bin/mongod --dbpath=... --logpath=.... --logappend --maxConns=2048

注:

☆ 每个连接需要使用10M的内存,内核中stack size可以调整连接数占用内存大小。

☆ 每1024 ulimit可以提供819 个maxConns.

☆ maxConns允许的最大值是20000.

最近遇到一个问题,查看mongo客户端运行 
[root@DB192168129044 bin]# ./mongo
MongoDB shell version: 2.2.0
connecting to: test
> db.serverStatus().connections;
{ "current" : 3, "available" : 816 }

mongodb最大的连接数是819,在启动里面加参数 --maxConns=3000重启mongodb服务后最大连接数还是819。最后通过排查发现是linux系统的限制,Linux系统默认一个进程最大文件打开数目为1024。需要修改此限制
因为已经将mongodb添加到开机启动里面,所以需要在rc.local文件下面加ulimit -n 的限制 

vi /etc/rc.local

ulimit -n 20000
rm /usr/mongodb/log/mongodb.log
/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log  --master --oplogSize 200

然后重启机器再次查看mongodb的最大连接数发现变了
[root@DB192168129044 bin]# ./mongo
MongoDB shell version: 2.2.0
connecting to: test
> db.serverStatus().connections;
{ "current" : 1, "available" : 15999 }

 

THE END

Leave a Reply