gpt4 book ai didi

mongodb - 确保索引 mongodb 时打开的文件过多

转载 作者:IT老高 更新时间:2023-10-28 13:18:29 27 4
gpt4 key购买 nike

我想在 mongo 集合上创建文本索引。我写

db.test1.ensureIndex({'text':'text'})

然后我在mongod进程中看到了

Sun Jan  5 10:08:47.289 [conn1] build index library.test1 { _fts: "text", _ftsx: 1 }
Sun Jan 5 10:09:00.220 [conn1] Index: (1/3) External Sort Progress: 200/980 20%
Sun Jan 5 10:09:13.603 [conn1] Index: (1/3) External Sort Progress: 400/980 40%
Sun Jan 5 10:09:26.745 [conn1] Index: (1/3) External Sort Progress: 600/980 61%
Sun Jan 5 10:09:37.809 [conn1] Index: (1/3) External Sort Progress: 800/980 81%
Sun Jan 5 10:09:49.344 [conn1] external sort used : 5547 files in 62 secs
Sun Jan 5 10:09:49.346 [conn1] Assertion: 16392:FileIterator can't open file: data/_tmp/esort.1388912927.0//file.233errno:24 Too many open files

我在 MaxOSX 10.9.1 上工作。请帮忙。

最佳答案

注意:此解决方案不适用于/可能不适用于最近的 Mac OS(评论表明 >10.13?)。显然,出于安全目的进行了更改。

从概念上讲,该解决方案适用 - 以下是一些讨论来源:

--

我遇到了同样的问题(执行不同的操作,但仍然出现“打开的文件过多”错误),正如 lese 所说,它似乎已降低到运行 mongod 的机器上的“maxfiles”限制.

在 Mac 上,最好使用以下命令检查限制:

sudo launchctl limit

这给了你:

<limit name> <soft limit> <hard limit>
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 1024 2048

我为解决这个问题所做的只是暂时将限制设置得更高(我的最初是软:256,硬:1000 或类似的东西):

sudo launchctl limit maxfiles 1024 2048

然后重新运行查询/索引操作,看看它是否中断。如果没有,并且为了保持更高的限制(当您退出您设置的 shell session 时,它们将重置),请使用以下行创建一个“/etc/launchd.conf”文件:

limit maxfiles 1024 2048

(或者将该行添加到您现有的 launchd.conf 文件中,如果您已经有的话)。

这将在登录时在每个 shell 上通过 launchctl 设置 maxfile。

关于mongodb - 确保索引 mongodb 时打开的文件过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20931909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com