我有一台运行于14.04.05 LTS的Ubuntu服务器。
此服务器上还安装了多个ugins mongodb应用程序。 MongoDB版本是3.4.2
我正在尝试增加mongodb进程的最大进程ulimit。
我首先将这些行放到/etc/security/limits.conf
* soft nproc unlimited
* hard nproc unlimited
* soft nofile 64000
* hard nofile 64000
* soft sigpending unlimited
* hard sigpending unlimited
root soft nproc unlimited
root hard nproc unlimited
root soft nofile 64000
root hard nofile 64000
root soft sigpending unlimited
root hard sigpending unlimited
mongodb soft nproc unlimited
mongodb hard nproc unlimited
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft sigpending unlimited
mongodb hard sigpending unlimited
并将所需的pam.limits放到正确的位置并重新启动但没有成功。
然后我尝试手动运行ulimit -u unlimited
命令,该命令在我执行后立即反映出来(我看到ulimit -a
命令的结果)。然后重新启动mongodb进程,但限制没有改变。
然后我试着将这些行放到:
ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 64000
ulimit -m unlimited
ulimit -u unlimited
到/etc/init.d/mongodb
文件并尝试使用/etc/init.d/mongodb start
启动mongodb进程,但我收到此错误:
/etc/init.d/mongodb: 67: ulimit: Illegal option -u
我也将此行mongod soft nproc 64000
添加到/etc/security/limits.d/90-nproc.conf
并尝试重新启动,但没有成功。
在这个帖子https://stackoverflow.com/questions/9361816/maximum-number-of-processes-in-linux
上,我看到有一个用户报告kernel.threads-max
正在限制此号码,但在我的另一台服务器上,我可以获得更多的最大连接限制,然后kernel.threads-max / 2
所以我不确定我在哪里做错了,但是非常感谢任何帮助。
答案 0 :(得分:0)
尝试将-S添加到每行,如下所示: ulimit -S -n 4096
答案 1 :(得分:0)
要使更改持久化,您必须编辑初始化脚本,例如在Red Hat 7中,初始化脚本具有以下行:
LimitNOFILE=64000
您必须添加下一个:
LimitNPROC=32000
然后重新启动服务。
我希望这会有所帮助。
答案 2 :(得分:0)
在行中添加“@”对我有用:
@mongodb soft nproc unlimited
@mongodb hard nproc unlimited
@mongodb soft nofile 64000
@mongodb hard nofile 64000