一、修改linux文件最大句柄数,以支持mongodb更多的连接数
在Linux平台下,无论是64位或者32位的MongoDB默认最大连接数都是819。
通过db.serverStatus().connections;
命令可以查看:
{
"current" : 1.0, ## 当前已占用的连接数
"available" : 818.0, ## 当前空闲的连接数
"totalCreated" : 2.0 ## 截止目前为止总共创建的连接数
}
这个连接数也可以修改,只要在启动的时候加入--maxConns即可:
mongod --maxConns=5000
或者将其写入mongodb启动的配置文件中
port=27017
dbpath=/home/mongo/data
logpath=/home/mongo/logs/mongodb.log
logappend=true
journal=true
pidfilepath=/home/mongo/conf/mongodb.pid
fork=true
maxConns=5000
bind_ip=0.0.0.0
auth=true
keyFile=/home/mongo/conf/.keyfile
replSet=wd-mongodb
但是如上修改启动后,发现最大连接数依然是819,其实这是于linux最大文件句柄数有关。我们还需要再修改下linux的系统配置:
$ vi /etc/systemd/system.conf
修改如下几个参数值
DefaultLimitCORE=infinity
DefaultLimitNOFILE=65536
DefaultLimitNPROC=65536
再次重启mongodb,db.serverStatus().connections;
{
"current" : 1.0,
"available" : 4999.0,
"totalCreated" : 2.0
}
二、修改keepalive
根据官方建议在/etc/sysctl.conf中添加一行
net.ipv4.tcp_keepalive_time = 300
# vi /etc/sysctl.conf
net.ipv4.tcp_keepalive_time = 300