最近在做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
时间: 2024-10-17 17:04:28