一仆抵、修改linux文件最大句柄數(shù)巩割,以支持mongodb更多的連接數(shù)
在Linux平臺下,無論是64位或者32位的MongoDB默認最大連接數(shù)都是819亭珍。
通過db.serverStatus().connections;
命令可以查看:
{
"current" : 1.0, ## 當前已占用的連接數(shù)
"available" : 818.0, ## 當前空閑的連接數(shù)
"totalCreated" : 2.0 ## 截止目前為止總共創(chuàng)建的連接數(shù)
}
這個連接數(shù)也可以修改敷钾,只要在啟動的時候加入--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
但是如上修改啟動后,發(fā)現(xiàn)最大連接數(shù)依然是819肄梨,其實這是于linux最大文件句柄數(shù)有關阻荒。我們還需要再修改下linux的系統(tǒng)配置:
$ vi /etc/systemd/system.conf
修改如下幾個參數(shù)值
DefaultLimitCORE=infinity
DefaultLimitNOFILE=65536
DefaultLimitNPROC=65536
再次重啟mongodb,db.serverStatus().connections;
{
"current" : 1.0,
"available" : 4999.0,
"totalCreated" : 2.0
}
二众羡、修改keepalive
KIYPEL4ZC$_@WHQ)TX0ZB5A.png
根據(jù)官方建議在/etc/sysctl.conf中添加一行
net.ipv4.tcp_keepalive_time = 300
# vi /etc/sysctl.conf
net.ipv4.tcp_keepalive_time = 300