如何为mongod设置ulimits?

如何在CentOS上设置mongod进程/用户的ulimits?

我已阅读官方文档,但没有提供特定于操作系统的说明。

用你所需要的修改/etc/security/limits.conf 。 例:

user soft nproc 64000

这一行将设置“用户”的处理器数量( -u )为64000。 软/硬限制可以是相同的(软允许尖刺而硬阻止产卵)。

新版本的CentOS mongod启动脚本(/etc/init.d/mongod)具有启动选项内置的默认设置:

 start() { # Recommended ulimit values for mongod or mongos # See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings # ulimit -f unlimited ulimit -t unlimited ulimit -v unlimited ulimit -n 64000 ulimit -m unlimited ulimit -u 32000 echo -n $"Starting mongod: " daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1" RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod } 

如果要更改值而不修改脚本,请将脚本复制到/etc/init.d/mongod-custom,然后编辑自定义init脚本,设置值并将chkconfig更改为使用mongod-custom而不是mongod。

为了增加thaspius的答案,似乎是按照他在init脚本中描述的那样设置限制,但是我仍然收到警告

[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.

这似乎表明,在init脚本中定义的文件限制已经生效,但不限制进程。 还有Nathan C的回答和补充

mongod soft nproc 64000

/etc/security/limits.d/90-nproc.conf并重启系统解决了这个问题。

如果有人能够清楚地知道为什么这是必要的,尽pipe在mongodb初始化脚本中的值,我是耳朵!

/etc/security/limits.conf文件中进行更改。 设定硬性和软性限制,你应该是好的。