您可以通過DMS或Mongo Shell登入MongoDB資料庫,本文介紹如何查詢串連使用方式以及設定串連池的串連數。
查詢當前串連數
根據您購買的MongoDB執行個體規格不同,最大串連數也不同,詳情請參見執行個體規格。
說明 最大串連數是指執行個體中每個節點的最大串連數,例如您購買了1核2G規格的三節點複本集執行個體,那麼該執行個體的Primary節點和Secondary節點的最大串連數均為500,Hidden節點由於其架構特殊性,不對外提供服務。
通過Mongo Shell串連執行個體,詳情請參見串連執行個體,然後執行命令
db.serverStatus().connections
。 mgset-123456:PRIMARY> db.serverStatus().connections
{
"current" : 1,
"available" : 999,
"internal_current" : 10,
"internal_available" : 990,
"totalCreated" : 632
}
說明 您需要關注以下參數及對應的值。
- "current" :當前已經建立的串連數。
- "available" :當前可用的串連數。
查詢當前串連來源
- 通過Mongo Shell串連執行個體,詳情請參見串連執行個體,然後切換至admin資料庫。
use admin
- 執行命令
db.runCommand({currentOp: 1, $all: true})
。mgset-123456:PRIMARY> db.runCommand({currentOp: 1, $all:[{"active" : true}]})
通過分析命令的輸出結果,您可以查詢每個串連對應的來源IP地址,從而得出各終端與MongoDB執行個體分別建立了多少串連。更多詳情請參見官方文檔。
如何限制終端的串連數
ApsaraDB for MongoDB支援通過Connection String URI串連資料庫。通過Connection String URI串連資料庫時,在URI末尾加上&maxPoolSize=<integer>
即可設定串連池的串連數。
Mongo Shell串連樣本(設定串連數為10),資料庫帳號為test,所屬資料庫為admin:
mongo "mongodb://test:****@dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108****&maxPoolSize=10"
說明 關於不同語言的用戶端如何限制串連池的數量,請參見MongoDB官網的API文檔。