[英]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.