973114 发表于 2018-10-26 12:54:32

关于MongoDB最大连接数的查看与修改

  在Linux平台下,无论是64位或者32位的MongoDB默认最大连接数都是819,WIN平台不知道,估计也没有人在 WIN平台下使用MongoDB做生产环境
   #./bin/mongo 192.168.6.42
  MongoDB shell version: 2.4.1
  connecting to: 192.168.6.42/test
  > db.serverStatus().connections
  {" current " : 1," available " : 818," totalCreated
  "
  : NumberLong(1) }
  途中available显示818少了一个,表示空闲的。current表示已经占用了的连接数,两数一加就等于819,如果我现在在连接一个,那么available就是817,current就是2
   #./bin/mongo 192.168.6.42
  MongoDB shell version: 2.4.1
  connecting to: 192.168.6.42/test
  > db.serverStatus().connections
  {" current " : 1," available " : 818," totalCreated " : NumberLong(1) }
  > db.serverStatus().connections
  {" current " : 2," available " : 817," totalCreated
  "
  : NumberLong(2) }
  819个连接数对于一般的站点我认为已经够用,并且都是现连现取现断。但这个连接数也可以修改,只要在启动的时候加入--maxConns即可
  服务器启动
   #./bin/mongod --dbpath=/root/db --maxConns=2000
  Wed Apr 3 11:06:21.905 MongoDB starting : pid=2812 port=27017 dbpath=/root/db 64-bit host=lee
  Wed Apr 3 11:06:21.957 db version v2.4.1
  Wed Apr 3 11:06:21.957 git version: 1560959e9ce11a693be8b4d0d160d633eee75110
  Wed Apr 3 11:06:21.957 build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen# 1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
  Wed Apr 3 11:06:21.957 allocator: tcmalloc
  Wed Apr 3 11:06:21.957 options: { dbpath:" /root/db " , maxConns: 2000 }
  Wed Apr 3 11:06:21.982 journal dir=/root/db/journal
  Wed Apr 3 11:06:21.982 recover : no journal files present, no recovery needed
  Wed Apr 3 11:06:22.297 preallocateIsFaster=true 2.62
  Wed Apr 3 11:06:22.717 --maxConns too high, can only handle 819
  Wed Apr 3 11:06:22.724 waitingfor connections on port 27017
  Wed Apr 3 11:06:22.725 admin web console waitingfor connections on port 28017
  Wed Apr 3 11:06:25.126 connection acceptedfrom 192.168.4.86:53917#
  1 (1 connection now open)
  查询最大连接数
   #./bin/mongo 192.168.6.42
  MongoDB shell version: 2.4.1
  connecting to: 192.168.6.42/test
  > db.serverStatus().connections
  {" current " : 1," available " : 818," totalCreated " : NumberLong(1) }
  >
  发现还是819?其实是Linux默认进程能打开最大文件数有关,可以通过ulimit 解决
   #ulimit -n 2500
   #./bin/mongod --dbpath=/root/db --maxConns=2000
  Wed Apr 3 11:11:07.013 MongoDB starting : pid=2930 port=27017 dbpath=/root/db 64-bit host=lee
  Wed Apr 3 11:11:07.013 db version v2.4.1
  Wed Apr 3 11:11:07.013 git version: 1560959e9ce11a693be8b4d0d160d633eee75110
  Wed Apr 3 11:11:07.013 build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen# 1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
  Wed Apr 3 11:11:07.013 allocator: tcmalloc
  Wed Apr 3 11:11:07.013 options: { dbpath:" /root/db " , maxConns: 2000 }
  Wed Apr 3 11:11:07.031 journal dir=/root/db/journal
  Wed Apr 3 11:11:07.031 recover : no journal files present, no recovery needed
  Wed Apr 3 11:11:07.170 waitingfor connections on port 27017
  Wed Apr 3 11:11:07.171 admin web console waitingfor connections on port 28017
  Wed Apr 3 11:11:10.076 connection acceptedfrom 192.168.4.86:53161#
  1 (1 connection now open)
  再查看最大连接数,搞定
   #./bin/mongo 192.168.6.42
  MongoDB shell version: 2.4.1
  connecting to: 192.168.6.42/test
  > db.serverStatus().connections
  {" current " : 1," available " : 1999," totalCreated " : NumberLong(1) }
  >
  关于ulimit的更多知识大家可以去网上检索检索

[*]  本文来自:Linux教程网

页: [1]
查看完整版本: 关于MongoDB最大连接数的查看与修改