當MongoDB執行個體的串連數被耗盡後,新發起的串連請求將無法被響應,本文介紹如何排查因串連數耗盡導致的資料庫連接問題。
故障表現
不同的MongoDB執行個體規格支援的最大串連數有所不同,詳情請參見執行個體規格概述。
部署的應用程式突然無法串連資料庫。
已正確設定了白名單,通過Mongo Shell串連資料庫時,提示如下錯誤:
2019-07-10T10:30:43.597+0800 E QUERY [js] Error: network error while attempting to run command 'isMaster' on host 'dds-bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717' : connect@src/mongo/shell/mongo.js:328:13 @(connect):1:6 exception: connect failed
已正確設定了白名單,通過DMS串連資料庫時,提示如下錯誤:
檢查串連數是否被耗盡
訪問MongoDB複本集執行個體列表或MongoDB分區叢集執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在目標執行個體頁面的左側導覽列,單擊監控資訊。
在監控資訊頁面,查看執行個體當前的串連數資訊。
說明執行個體為分區叢集執行個體時,您需要在頁面右上方選擇業務當前使用的Mongos節點。
不同規格的最大串連數,請參見執行個體規格表。
解決方案
您可以通過重啟執行個體或節點來臨時釋放所有的串連。為避免再次出現該問題,重啟後建議您參考下述方法進行調整:
說明
重啟執行個體的操作會將執行個體的節點進行輪轉重啟,每個節點會有30秒左右的閃斷,如果集合的數量較多(超過1萬),閃斷時間也會隨之變長,重啟前請做好業務安排並確保應用有重連機制。
合理地配置串連池,詳情請參見如何限制終端的串連數。