Pio*_*ski 8 database macos full-text-search mongodb nosql
我想在mongo集合上创建文本索引.我写
db.test1.ensureIndex({'text':'text'})
Run Code Online (Sandbox Code Playgroud)
然后我在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
Run Code Online (Sandbox Code Playgroud)
我在MaxOSX 10.9.1上工作.请帮忙.
dpb*_*dpb 10
我遇到了同样的问题(执行不同的操作,但仍然是"太多的打开文件"错误),并且正如lese所说,它似乎是运行mongod的机器上的'maxfiles'限制.
在Mac上,最好通过以下方式检查限制:
sudo launchctl limit
Run Code Online (Sandbox Code Playgroud)
这给你:
<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
Run Code Online (Sandbox Code Playgroud)
我解决这个问题的方法是暂时将限制设置得更高(我本来就像软件一样:256,硬:1000或类似奇怪的东西):
sudo launchctl limit maxfiles 1024 2048
Run Code Online (Sandbox Code Playgroud)
然后重新运行查询/索引操作,看它是否中断.如果没有,并且为了保持更高的限制(当你注销shell会话时它们将被重置),用以下行创建一个'/etc/launchd.conf'文件:
limit maxfiles 1024 2048
Run Code Online (Sandbox Code Playgroud)
(或者将该行添加到现有的launchd.conf文件中,如果已有的话).
这将在登录时通过launchctl在每个shell上设置maxfile.
我ulimit -n 4096在恢复命令之前添加了一个临时的。你也可以使用
mongorestore --numParallelCollections=1 ...,这似乎有帮助。但是连接池似乎仍然耗尽。
| 归档时间: |
|
| 查看次数: |
13947 次 |
| 最近记录: |