2017-08-24 28 views
2

我正在嘗試使用serverStatus command來評估我的MongoDB 3.4服務器的性能。如何解釋mongo中serverStatus命令的結果?

> var status = db.serverStatus() 
> status.connections 
{ "current" : 20, "available" : 51180, "totalCreated" : 67 } 

- >如何分析這個命令對MongoDB的服務器的性能的輸出? - >可用的連接太多而沒有被使用。這是否意味着它會影響性能?

該文檔看起來很簡單。所以,對此的任何見解都會非常有幫助。

回答

2

有太多可用的連接沒有被使用。 這是否意味着它會影響性能?

相反,如果幾乎所有連接都被使用,會影響性能。如果客戶端嘗試連接沒有可用的連接,它將被集中並且必須等待可用的連接。它也可能會失敗,具體取決於您的連接設置(例如配置的超時之後)。

未使用的連接只是可用的插槽。它可能會使用一些內存開銷,但很少或沒有資源被佔用。

由於有很多可用的連接並且很少使用,您的mongdb服務器可以爲更多的客戶提供服務。當然,你也應該監視你的機器的資源使用情況,這會更有意義。

https://docs.mongodb.com/manual/reference/connection-string/https://docs.mongodb.com/manual/applications/drivers/更多細節

您也應該檢查你的系統能夠處理連接的這一數額(Max系統的文件描述符,例如見這個問題:mongodb : Increasing max connections in mongodb)。否則,此設置將被忽略,您的連接將受到系統限制的限制。

如何分析此命令的輸出以評估MongoDB服務器的性能?

唯一可以在這裏分析的是totalCreated,它可以作爲歷史數據。您應該將它與自從mongoDB運行以提取一些有意義的信息以來的時間進行比較。