如何解释mongo中serverStatus命令的结果?

时间:2017-08-24 09:48:44

标签: mongodb

我正在尝试使用serverStatus command评估 MongoDB 3.4服务器的性能。

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

- > 如何分析此命令的输出以评估MongoDB服务器的性能? - > 有太多可用的连接未被使用。这是否意味着它会影响性能?

该文档看起来非常简单。所以,任何有关这方面的见解都会非常有用。

1 个答案:

答案 0 :(得分:2)

  

有太多可用的连接未被使用。   这是否意味着它会影响性能?

相反,如果几乎所有连接都被使用,它会影响性能。如果客户端尝试连接没有可用的连接,它将被池化并且必须等待可用的连接。它也可能会失败,具体取决于您的连接设置(例如,在配置的超时之后)。

未使用的连接只是可用的插槽。它可能会使用一些内存开销,但几乎没有资源可用于它们。

有许多连接可用且很少使用,您的mongdb服务器可以为更多客户端提供服务。当然,您还应该监控机器的资源使用情况,这样会更有意义。

有关详细信息,请参阅https://docs.mongodb.com/manual/reference/connection-string/https://docs.mongodb.com/manual/applications/drivers/

您还应检查您的系统是否能够处理此连接数量(最大系统文件描述符,请参阅此问题:mongodb : Increasing max connections in mongodb)。否则,此设置将被忽略,您的连接将受到系统限制的限制。

  

如何分析此命令的输出以评估MongoDB服务器的性能?

这里唯一可以分析的是totalCreated,它可以作为历史数据。您应该将它与mongoDB运行时的时间进行比较,当然是为了提取一些有意义的信息。