繁体   English   中英

在mongodb中插入文档时出现“打开文件过多”错误

[英]Getting 'too many open files' error when inserting documents in mongodb

我在Mongo中创建了一个大型数据库(每个集合80k个文档,每个集合200k个文档)。 当我开始将文档推入数据库时​​,在插入〜800k之后,我不断收到以下错误。

pymongo.errors.WriteError: 24: Too many open files

我有一个体面的服务器(2个vCPU,32 GB RAM)。 文件打开的ulimit设置为无限制。 在/etc/init/mongodb.conf中设置了limit nofile 999999 999999

我曾尝试在文件插入脚本中插入sleep (希望mongodb稍候会关闭文件),但这也没有帮助。 唯一可行的方法是插入失败后重新启动Mongodb。 然后,该过程可以继续。

如何使插入过程更好,而不必每隔几千次插入并重新启动mongodb之后就暂停它?


共享将数据点从Redis传输到mongo的Python脚本

while (redis_conn.llen(redis_key) > 0) :
            redis_json = redis_conn.lpop(redis_key)
            json_doc = json.loads(redis_point)
            collection_name = json_doc['collection_name']
            collection = mongodb[collection_name]
            document = { '1' : json_doc['1'], '2' : json_doc['2'] }
            mongo_write_response = collection.insert_one(document)

(为简洁起见,我简化了文档。实际文档中包含大约20个数据点。

问题似乎出在MongoDB的安装上。 我使用的是Debian 9,并使用apt-get安装了操作系统随附的MongoDB版本。

由于MongoDB文档表示尚不支持Debian 9,因此将操作系统降级为Debian 8并根据文档安装了MongoDB社区版。 现在运作良好:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM