MongoDB连接如何计数?

时间:2018-11-07 18:38:56

标签: mongodb

当我计算到MongoDB数据库的当前连接时,收到一个意外的高数字:

  

MongoDB Enterprise mongos> db.serverStatus()。connections

     

{“当前”:2044,“可用”:49156,“总计创建”:567801428}

如何获取有关每个连接的更多信息,例如源IP及其用途?

2 个答案:

答案 0 :(得分:0)

$ lsof -n -i4TCP:27017  // where `27017` if your mongo port

将是通过OS列出连接的一种方法。

就它们的计算方式而言,影响很小的因素。一个是connection pooling

  

大多数MongoDB驱动程序支持用于设置最大数量的参数。   应用程序可用的连接数(池大小)。连接   池大小可以视为并发请求的最大数量   您的司机可以维修的。默认池大小因驱动程序而异   给司机对于Node,它是5,而对于Python,它是100。

如上所述,

MongoDB default connection pool size5,因此对于使用池进行连接的每个应用,您将获得5个打开的连接等。请查看您是否正在使用连接池,如果使用的话,该数字是否更高。您还可以使用maxPoolSize限制池中的连接数。

答案 1 :(得分:0)

能够以这种方式获取我需要的信息:

DataAvailable
  1. 使用netstat -vatn | grep 27017 | awk '{print $5}' | cut -d ':' -f 1 | sort | uniq 检索所有打开的Mongo连接
  2. 使用netstat -vatn | grep 27017将所有连接排序为唯一的客户端
  3. 要另外计算连接数或客户端数,请将awk '{print $5}' | cut -d ':' -f 1 | sort | uniq附加到上面的#1或#2上