增加 Mac OSX 10.8 的 rlimit

7
我正在学习MongoDB,当我启动mongo shell时出现一个警告信息。它说: enter image description here 我该如何更改“soft rlimits”。我使用的是Mac OSX 10.8.2。
提前感谢。

1
这里关于限制的警告,除非你正在处理更多的数据文件/连接,否则不应该影响你。默认的OS X限制通常对于学习或开发目的来说是可以接受的。 - Stennie
2
你说得没错,但是我不喜欢看到任何警告 :) (即使在开发模式下) - crsuarezf
1
@ingcarlos +1 因为我之前以为只有我一个人:-P - Angel S. Moreno
3个回答

9
你要找的是launchctl limit maxfiles命令。
要更改此值,你需要运行例如launchctl limit maxfiles 1024 2048的命令。
要永久更改这些值,你需要创建 /etc/launchctl.conf 文件,并在其中设置所需值(详见这里),或将上述命令添加到你的~/.bash_profile文件中。
或者,你可以创建脚本来设置限制,然后启动mongo。

3
在我的OSX 10.8.4系统上,这个方法对我没有用。如果其他人也有问题,可以尝试使用“ulimit -n 1024”的方法。 - njwags
以上命令需要以 root 用户身份执行(不要通过 sudo 执行)。 - user6425670
1
我不建议将硬限制设置为2048,因为它会锁定我的系统(Yosemite)。我太傻了,在没有仔细检查的情况下运行了一个命令!运行“launchctl limit maxfiles”以查看当前限制,然后仅更改软限制,例如在我的情况下,我有“256无限制”(第一个是软限制,第二个是硬限制),所以我运行了“sudo launchctl limit maxfiles 1024无限制”。实际上,这将它们设置为“1024 10240”。因此,最终,仅使用“ulimit -n 1024”(不使用sudo)对于运行MongoDB的我的用户来说效果很好...听起来比更改全局设置更好。 - Kamal
只是想插一句话,@Kamal和@jwags是对的,使用ulimit -n 1024是首选选项;他们的评论应该被转换为答案! - Gwyneth Llewelyn

1
如果您将Mongo作为服务运行,可以通过添加以下内容来配置最大打开文件数:

/Library/LaunchDaemons/org.mongodb.mongod.plist

  <key>SoftResourceLimits</key>
  <dict>
    <key>NumberOfFiles</key>
    <integer>1024</integer>
  </dict>

并重新启动服务


1
在我的情况下,文件是 _/Library/LaunchDaemons/org.mongo.mongod.plist_,其他都一样。要重新启动服务,请参考: https://serverfault.com/questions/194832/how-to-start-stop-restart-launchd-services-from-the-command-line - aspdeepak

0

曾经遇到过类似的问题,经过大量搜索,我发现this的答案很有用。

这个要点解释了如何通过专用的启动文件以及仅会话更改来解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接