我需要你帮助解决这个问题
这是我的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的连接,提前谢谢。
答案 0 :(得分:7)
您还需要增加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/
答案 1 :(得分:2)
答案 2 :(得分:2)
似乎MongoDB对传入连接没有限制,您应该修改系统范围的限制,请参阅官方文档:
除非受系统范围限制,否则MongoDB对传入连接没有限制。在基于Unix的系统上,您可以使用
ulimit
命令或编辑系统的/etc/sysctl
文件来修改系统限制。有关详细信息,请参阅UNIX ulimit Settings。
推荐的ulimit设置(官方文档):
-f(文件大小):无限
-t(cpu time):无限
-v(虚拟内存):无限制
-n(打开文件):64000
-m(内存大小):无限
-u(进程/线程):64000
在更改ulimit设置后,请务必重新启动您的mongod
和mongos
个实例,以确保更改生效。
答案 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。