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 }