鍍金池/ 問(wèn)答/Linux  數(shù)據(jù)庫(kù)/ 修改mongog默認(rèn)最大連接數(shù)

修改mongog默認(rèn)最大連接數(shù)

1.mongodb sharding cluster默認(rèn)最大連接數(shù)是819,我想調(diào)大一些,但是始終沒(méi)有調(diào)整成功。

[root@ctl1m ~]# mongo mongodb://10.0.1.121:30000
MongoDB shell version v3.4.9
connecting to: mongodb://10.0.1.121:30000
MongoDB server version: 3.4.9
2018-01-18T18:19:13.270+0800 I CONTROL  [main] 
mongos> db.serverStatus().connections
{ "current" : 715, "available" : 104, "totalCreated" : 719 }

從上面的結(jié)果可以看到最大連接數(shù)是819,當(dāng)available為0時(shí),重新登錄就會(huì)報(bào)錯(cuò):

[root@ctl1m ~]# mongo mongodb://10.0.1.121:30000
MongoDB shell version v3.4.9
connecting to: mongodb://10.0.1.121:30000
2018-01-19T10:52:41.277+0800 E QUERY    [thread1] Error: network error while attempting  to run command 'isMaster' on host '10.0.1.121:30000'  :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

2.我的修改過(guò)程:
修改/etc/secruity/limits.conf,重啟系統(tǒng)查看ulimit -n是16384. 在mongos.conf文件中配置如下:
net:
port: 30000
bindIp: ctl1m # Listen to local interface only, comment to listen on all interfaces.
maxIncomingConnections: 8000
然后重啟mongos服務(wù),再次查看連接數(shù),db.serverStatus().connections,發(fā)現(xiàn)還是819。我的修改有什么問(wèn)題,您有什么修改方法嗎?謝謝

也嘗試用下面的方法啟動(dòng)mongos服務(wù),依然沒(méi)有效果:
/usr/bin/mongos --config /etc/mongod/mongos.conf --maxConns=3000

回答
編輯回答
脾氣硬

ulimit -n 已經(jīng)修改了,并且也生效了。最有我修改了service文件,總連接數(shù)就正常了:

[unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=root
Group=root
Environment="OPTIONS=-f /etc/mongod/mongos.conf"
ExecStart=/usr/bin/mongos $OPTIONS --maxConns 10000
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb
ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb
PermissionsStartOnly=true
PIDFile=/var/run/mongodb/mongos/mongod.pid

# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings

[Install]
WantedBy=multi-user.target
2018年1月28日 08:03
編輯回答
青檸

插個(gè)不相關(guān)的問(wèn)題,剛才碰到了,提醒一下新來(lái)的
db.serverStatus().connections需要授權(quán)clusterMonitor角色,具體權(quán)限對(duì)應(yīng)角色可以參見(jiàn)角色
(打開(kāi)連接,全文搜索serverStatus)

2018年3月4日 22:09
編輯回答
乞許

這個(gè)不是你Mongo服務(wù)器的限制,這個(gè)應(yīng)該是你的Linux服務(wù)器能開(kāi)啟的最大文件數(shù)的限制。你可以試著修改:

//1. 移步到下列文件

sudo vim /etc/sysctl.conf

//2. 添加或者修改

fs.file-max = 50000  // 服務(wù)器可以大概的最大文件數(shù)

//3. 執(zhí)行下面命令 設(shè)置用戶范圍的限制

ulimit -n 50000 

然后重啟服務(wù)器在試一試。

2017年1月27日 10:39