Pio*_*ski 8 database macos full-text-search mongodb nosql
我想在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上工作.请帮忙.
dpb*_*dpb 10
我遇到了同样的问题(执行不同的操作,但仍然是"太多的打开文件"错误),并且正如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会话时它们将被重置),用以下行创建一个'/etc/launchd.conf'文件:
limit maxfiles 1024 2048
(或者将该行添加到现有的launchd.conf文件中,如果已有的话).
这将在登录时通过launchctl在每个shell上设置maxfile.
我ulimit -n 4096在恢复命令之前添加了一个临时的。你也可以使用 
mongorestore --numParallelCollections=1 ...,这似乎有帮助。但是连接池似乎仍然耗尽。
| 归档时间: | 
 | 
| 查看次数: | 13947 次 | 
| 最近记录: |