美文网首页
关于mongodb链接数相关记录

关于mongodb链接数相关记录

作者: 水车 | 来源:发表于2017-11-15 11:56 被阅读97次

前言

Mongod 的服务模型是每个网络连接由一个单独的线程来处理,连接是要消耗资源的,而且消耗的并不少,每个线程配置了1MB 的栈空间,1000个连接,1G内存就这么没了,甭管是否是活跃连接.
mongod的最大连接数通过 net.maxIncomingConnections 指定,默认值为1000000,相当于没有限制,生产环境强烈建议根据实际需求配置,以避免客户端误用导致 mongod 负载过高。

查看链接数

#用自带的mongos Shell 链接mongodb
//查看
db.serverStatus().connections
//查看内存
db.serverStatus().mem

修改链接数

mongodb启动时有一个参数

--maxConns=50000

表示最大链接数设置为50000;

埋坑:

在服务器中配置mongodb的最大链接数以后,这个可能不会起作用
原因是:linux系统的限制,Linux系统默认一个进程最大文件打开数目为1024。需要修改此限制

#root权限下

//查看系统允许一个进程最大文件打开数目
ulimit -n  
>1024

//设置系统允许一个进程最大文件打开数目
ulimit -n 50000

设置以后要重启mongodb才能生效

优化链接数

MongoDB服务器内存要满足 connection overhead + data size + index size
即连接数开销+热点数据+索引

连接数太多的问题:
如果在日志中遇到类似如下的错误信息:

"too many open files"
"too many open connections"

则说明打开的连接数太多了
有两个限制mongod/mongos连接数的地方:
1.操作系统的ulimit限制,可以用ulimit查看open files,是否足够大。linux下默认的open files是1024,在提供服务的时候往往太小。
2.mongodb自身的限制
mongodb(mongod/mongos)在启动的时候,有个参数是–maxConns,用来指定最大的连接数

后记

相关文章

网友评论

      本文标题:关于mongodb链接数相关记录

      本文链接:https://www.haomeiwen.com/subject/pzecvxtx.html