我试图将一个大型数据库的转储导入到我的本地mongodb实例中。
不幸的是,我发现在导入的其中一个集合中,mongo抛出了一个异常,提示打开的文件太多了。
我搜索了互联网强大的知识库,使用谷歌找到了一些使用ulimit和launchctl的解决方案,但它们并没有起作用。
最后我通过以下方式解决了这个问题:
- 我创建了/etc/launchd.conf文件,并添加了以下内容:
limit maxproc 512 1024 limit maxfiles 16384 32768
- 接下来,我在终端中执行以下命令行:
sudo sysctl -w kern.maxfilesperproc=16384 sudo sysctl -w kern.maxfiles=32768
- 最后,我重新启动了操作系统。
问题不再出现了,但我有一个问题。是否有一种方法可以从mongorestore级别限制打开的文件数?我认为增加全局的最大打开文件值并不是一个好方法。
mongod --repair
,之前它会因“文件打开过多”而失败。 - jorisw