週末運維同事反映對外服務當了,檢查發現,app服務正常,是後端mongodb數據庫掛了,進程退出,先拷貝下日誌備份起來等待檢查緣由,而後第一時間啓動數據庫恢復服務再說,而後打開日誌文件查看最後當機時候的日誌,看到有以下的錯誤: mongodb
"errno:24 Too many open files" 數據庫
打開的文件過多,記得以前只優化過應用服務器的系統設置,數據庫服務器仍是默認的,用 後端
ulimit -n查看進程容許的open files數,果真仍是默認的1024,以前由於才系統才上線而且行業應用週期性問題,併發訪問量較低,數據庫併發鏈接數少,沒有突破系統設置,最近用戶上去,致使併發鏈接多了。。。 服務器
使用 ulimit -n 50000 將參數值調高,以後雖然併發用戶數仍是不斷增加,mongodb沒有再出現此異常當機。 併發
不過有點不解的是mongodb爲何鏈接數過多就要退出,那未免太過於脆弱。我用的引擎版本仍是1.8,不知道新的2.4是否是已經不存在此問題了? app