最近在做mongo数据库集群,用到生产环境上后发现用不了多久客户端就拒绝访问。查询进程发现路由mongos并没有宕,能ping通,于是查看最大连接数,发现已满。

科普:在Linux平台下,无论是64位或者32位的MongoDB默认最大连接数都是819,WIN平台不知道,估计也没有人在 WIN平台下使用MongoDB做生产环境。

于是,修改最大连接数。

1.查询最大连接数:

    db.serverStats().connections

2.修改最大连接数:

    关闭数据库,重启加上参数maxConns:mongodb --port 27017 --dbpath data/ --maxConn 300 

3.重启查看最大连接数:

    db.serverStats().connections

  发现还是819,并没有改变,这是咋回事?经过一番研究,才发现,这是系统的限制,Linux默认进程能打开最大文件数是有限制的,可以通过ulimit 解决。

4.设置系统

    Linux下切换到超级用户,ulimit -n 4000,也可在配置文件修改,/etc/rc.local里加入ulimit -n 4000

5.重启mongodb,查看最大连接数已变成了3000