15

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

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

   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,在此先感谢。

4

5 回答 5

8

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

在 Linux 中,这应该通过在实用程序处/proc/sys/fs/file-max或由sysctl实用程序编辑文件来配置。

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

检查此链接以获得更具描述性的文章,以编辑 linux 机器上的限制:http ://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

于 2013-05-23T12:58:28.267 回答
4

方法 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 ( service mongod restart )

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

添加类似:

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

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

于 2018-06-29T16:16:49.060 回答
3

你有没有尝试过:

--maxConns arg       max number of simultaneous connections

(来源:mongod文档)

于 2016-08-12T09:12:55.037 回答
2

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

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

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

-f(文件大小):无限制

-t(cpu时间):无限制

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

-n(打开文件):64000

-m(内存大小):无限制

-u(进程/线程):64000

请记住在更改 ulimit 设置后重新启动您的mongod实例mongos,以确保更改生效。

来源: 推荐的连接数 -ulimit-settings

于 2018-04-11T18:55:33.000 回答
1

您可能需要根据您的发行版/etc/limits.conf更改硬限制。/etc/security/limits.conf

于 2013-05-23T14:44:24.350 回答