mongodb:增加mongodb中的最大连接数

时间:2013-05-23 12:02:21

标签: mongodb

我需要你帮助解决这个问题

这是我的linux服务器上ulimit -a的结果

   core file size          (blocks, -c) 0
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 24576
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

现在这是我的MongoDB的结果

db.serverStatus().connections

{ "current" : 4, "available" : 5996 }

我想将MongoDb连接增加到10000。

我尝试了不同的选项,例如我的mongod1.conf

fork    = true
port    = 27017
maxConns = 10000

以及启动mongodb时的这个

mongod ulimit -n 10000  --config mongod1.conf 

但没有任何效果且都失败了,请让我知道如何在我的情况下增加10000的连接,提前谢谢。

5 个答案:

答案 0 :(得分:7)

您还需要增加Linux内核允许的每个进程的文件描述符数和文件描述符数。

在Linux中,应通过编辑/proc/sys/fs/file-maxsysctl实用程序中的文件来配置。

  • 修改/etc/sysctl.conf文件并添加fs.file-max = 50000。这将设置可以作为系统范围限制运行的最大文件描述符。
  • 正在运行ulimit -n 50000设置打开的最大文件描述符数的用户范围限制。

检查此链接,以获得更具描述性的报告,以便在Linux计算机上编辑限制:http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

答案 1 :(得分:2)

你试过了吗?

--maxConns arg       max number of simultaneous connections

(来源: mongod 文档)

答案 2 :(得分:2)

似乎MongoDB对传入连接没有限制,您应该修改系统范围的限制,请参阅官方文档:

  

除非受系统范围限制,否则MongoDB对传入连接没有限制。在基于Unix的系统上,您可以使用ulimit命令或编辑系统的/etc/sysctl文件来修改系统限制。有关详细信息,请参阅UNIX ulimit Settings

推荐的ulimit设置(官方文档):

  

-f(文件大小):无限

     

-t(cpu time):无限

     

-v(虚拟内存):无限制

     

-n(打开文件):64000

     

-m(内存大小):无限

     

-u(进程/线程):64000

在更改ulimit设置后,请务必重新启动您的mongodmongos个实例,以确保更改生效。

来源: number-of-connections recommended-ulimit-settings

答案 3 :(得分:1)

您可能需要更改/etc/limits.conf/etc/security/limits.conf中的硬限制,具体取决于您的发布。

答案 4 :(得分:1)

方法1 如果您使用 systemd systemctl restart mongod

sudo mkdir /etc/systemd/system/mongod.service.d/
sudo vi /etc/systemd/system/mongod.service.d/limits.conf

然后添加:

[Service]
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitMEMLOCK=infinity
LimitNOFILE=64000
LimitNPROC=64000

然后执行:

systemctl daemon-reload
systemctl restart mongod

方法2 如果没有 systemd 服务mongod重新启动

sudo vi /etc/security/limits.d/99-mongodb.conf

添加类似内容:

*       -       nproc   64000
*       -       nofile  64000
*       -       fsize   unlimited
*       -       cpu     unlimited
*       -       memlock unlimited
*       -       as      unlimited
*       -       rss     unlimited

请注意,*是通配符。但是您可以使用特定的用户或组。 然后重新启动会话和mongod。