MongoDB:软 rlimits 太低。 rlimits 设置为 27774 个进程,64000 个文件。进程数应至少为 32000:文件数的 0.5 倍

标签 mongodb ulimit

我有一个在 14.04.05 LTS 上运行的 Ubuntu 服务器。

此服务器上还安装了几个 ugins mongodb 应用程序。 MongoDB版本为3.4.2

我正在尝试增加 mongodb 进程的最大进程 ulimit。

我首先将这些行放入 /etc/security/limits.conf

* 软 nproc 无限 *硬nproc无限 * 软文件 64000 * 硬文件 64000 * 软签名无限 *硬签名无限 根软 nproc 无限 root hard nproc unlimited 根软 nofile 64000 root 硬 nofile 64000 root soft signpending unlimited root hard signpending unlimited mongodb 软 nproc 无限 mongodb 硬 nproc 无限 mongodb 软 nofile 64000 mongodb 硬 nofile 64000 mongodb soft signpending unlimited mongodb 硬 signpending 无限

并将所需的 pam.limits 放到适当的位置并重新启动但没有成功。

然后我尝试手动运行 ulimit -u unlimited 命令,它在我执行后立即反射(reflect)出来(我看到了 ulimit -a 命令的结果)。然后重新启动 mongodb 进程,但限制没有改变。

然后我试着把这些行放到:

ulimit -f 无限制 ulimit -t 无限制 ulimit -v 无限制 ulimit -n 64000 ulimit -m 无限制 ulimit -u 无限

/etc/init.d/mongodb 文件并尝试使用 /etc/init.d/mongodb start 启动 mongodb 进程,但我收到此错误:

/etc/init.d/mongodb: 67: ulimit: 非法选项-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

更多的最大连接限制

所以我不确定我哪里做错了,但非常感谢任何帮助。

最佳答案

在行中添加“@”对我有用:

@mongodb       soft        nproc      unlimited
@mongodb       hard      nproc        unlimited
@mongodb       soft       nofile      64000
@mongodb       hard      nofile      64000

关于MongoDB:软 rlimits 太低。 rlimits 设置为 27774 个进程,64000 个文件。进程数应至少为 32000:文件数的 0.5 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49364187/

相关文章:

mysql - FD_SETSIZE 和 MySQL 的 Catalina 问题,未读取配置

ubuntu - Apache 基准测试错误 : Too Many Open Files

linux - linux 如何统计一个用户打开的文件数

c# - 如何将嵌套的 Document 反序列化为特定的类对象?

node.js - 按 Id 显示 React 属性

json - 执行正确的 MongoDB 查询(类型错误 : Converting circular structure to JSON)

linux - 如何增加 boxfuse 中打开文件的用户限制?

mongodb - 在 mongodb 集合中查找所有按字段最新且与另一个字段不同的文档

mongodb - 如果它是一个数组,如何连接字符串数组字段以显示为一个字符串

jvm - jvm 如何以及何时何地更改 Linux 的最大打开文件值?