当我计算到MongoDB数据库的当前连接时,收到一个意外的高数字:
MongoDB Enterprise mongos> db.serverStatus()。connections
{“当前”:2044,“可用”:49156,“总计创建”:567801428}
如何获取有关每个连接的更多信息,例如源IP及其用途?
答案 0 :(得分:0)
$ lsof -n -i4TCP:27017 // where `27017` if your mongo port
将是通过OS列出连接的一种方法。
就它们的计算方式而言,影响很小的因素。一个是connection pooling:
如上所述,大多数MongoDB驱动程序支持用于设置最大数量的参数。 应用程序可用的连接数(池大小)。连接 池大小可以视为并发请求的最大数量 您的司机可以维修的。默认池大小因驱动程序而异 给司机对于Node,它是5,而对于Python,它是100。
MongoDB default connection pool size是5
,因此对于使用池进行连接的每个应用,您将获得5个打开的连接等。请查看您是否正在使用连接池,如果使用的话,该数字是否更高。您还可以使用maxPoolSize
限制池中的连接数。
答案 1 :(得分:0)
能够以这种方式获取我需要的信息:
DataAvailable
netstat -vatn | grep 27017 | awk '{print $5}' | cut -d ':' -f 1 | sort | uniq
检索所有打开的Mongo连接netstat -vatn | grep 27017
将所有连接排序为唯一的客户端awk '{print $5}' | cut -d ':' -f 1 | sort | uniq
附加到上面的#1或#2上