2012-02-01 73 views
0

我們已經開發了使用node.js()和mongo sharding的聊天模塊,並且現場直播到生產服務器。但是今天它在MongoDB中達到了20000個連接,並且在日誌中出現錯誤「連接太多」。之後,我們重新啓動節點服務器並重新啓動。現在它正常。但是我們必須知道如何立即解決這個問題。MongoDB - 太多的連接錯誤

任何配置都可以在mongodb中設置,以便在不使用時終止連接,或者在建立連接時設置到期時間。

請幫助我們解決此問題。

問候, 庫馬蘭

回答

2

你可能沒有運行到MongoDB的問題。對MongoDB的連接數量有一個限制,通常大致等於可用的最大文件描述符數量。

聽起來好像您的代碼(可能)或貓鼬(不太可能)中存在一個錯誤,它會創建比關閉連接更多的連接或從不關閉連接。例如,在Java中爲每個查詢創建一個新的「Mongo」類實例會導致這種問題,但我不使用node.js/mongoose,所以我不知道JS的等價物是什麼。

關注mongostat並檢查連接計數是否總是增加或是否有時會減少。如果它是前者,你的代碼永遠不會因任何原因而釋放連接。如果是後者,你只需創建它們比空閒連接斷開更快。這通常是由於爲每個查詢做了一些重量級的事情(比如驅動程序初始化它的連接池)而不是一次。

+0

正確地正確你在說什麼。我們發現這個問題並修復它。感謝您的即時回覆。 – Kumaran 2012-02-01 14:53:50

+0

不客氣。如果答案正確,請接受答案;) – 2012-02-01 15:35:05