簡體   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