connPoolStats
定义
connPoolStats
命令
connPoolStats
返回当前数据库实例到 分片集群 或 副本集 其他成员的开放出站连接信息。分片集群 或 副本集要运行
connPoolStats
,请使用db.runCommand( { <command> } )
方法。注意
connPoolStats
只为mongos
实例以及mongod
实例返回有意义的统计结果。
兼容性
此命令在以下环境中托管的应用程序中可用
MongoDB Atlas:云中MongoDB部署的全托管服务
注意
此命令在所有MongoDB Atlas集群中受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅、自主管理的MongoDB版本
MongoDB Community:源代码可用的、免费使用且可自主管理的MongoDB版本
语法
该命令具有以下语法
db.runCommand( { connPoolStats: 1 } )
参数值(即1
)不会影响命令的输出。
行为
connPoolStats
的输出包括聚合统计信息
注意
为了防止干扰任何正在运行的操作,connPoolStats
不获取任何锁。因此,在connPoolStats
收集信息时,计数可能略有变化,从而导致hosts
和pools
连接计数之间略有差异。
示例
以下操作使用 db.runCommand()
方法在分片集群的 connPoolStats
上运行命令。该分片集群有2个分片,每个都是一个成员的副本集,还有一个配置服务器副本集。该 mongos
运行在4核机器上。
db.runCommand( { "connPoolStats" : 1 } )
命令返回以下格式的输出
注意
connPoolStats
的输出会根据部署和运行 connPoolStats
的成员等因素而有所不同。
{ "numClientConnections" : <num>, "numAScopedConnections" : <num>, "totalInUse" : <num>, "totalAvailable" : <num>, "totalLeased" : <num>, "totalCreated" : <num>, "totalRefreshing" : <num>, "replicaSetMatchingStrategy" : <string>, "acquisitionWaitTimes" : { // Added in MongoDB 6.3 "(-inf, 0ms)" : { "count" : <num> }, "[0ms, 50ms)" : { "count" : <num> }, "[50ms, 100ms)" : { "count" : <num> }, "[100ms, 150ms)" : { "count" : <num> }, "[150ms, 200ms)" : { "count" : <num> }, "[200ms, 250ms)" : { "count" : <num> }, "[250ms, 300ms)" : { "count" : <num> }, "[300ms, 350ms)" : { "count" : <num> }, "[350ms, 400ms)" : { "count" : <num> }, "[400ms, 450ms)" : { "count" : <num> }, "[450ms, 500ms)" : { "count" : <num> }, "[500ms, 550ms)" : { "count" : <num> }, "[550ms, 600ms)" : { "count" : <num> }, "[600ms, 650ms)" : { "count" : <num> }, "[650ms, 700ms)" : { "count" : <num> }, "[700ms, 750ms)" : { "count" : <num> }, "[750ms, 800ms)" : { "count" : <num> }, "[800ms, 850ms)" : { "count" : <num> }, "[850ms, 900ms)" : { "count" : <num> }, "[900ms, 950ms)" : { "count" : <num> }, "[950ms, 1000ms)" : { "count" : <num> }, "[1000ms, inf)" : { "count" : <num> }, "totalCount" : <num> }, "pools" : { "NetworkInterfaceTL-TaskExecutorPool-0" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, }, "NetworkInterfaceTL-TaskExecutorPool-1" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } }, "NetworkInterfaceTL-TaskExecutorPool-2" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } }, "NetworkInterfaceTL-TaskExecutorPool-3" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } }, "NetworkInterfaceTL-ShardRegistry" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } }, "global" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } } }, "hosts" : { "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 } }, "replicaSets" : { "csRS" : { "hosts" : [ { "addr" : "cfg1.example.net:27019", "ok" : <bool>, "ismaster" : <bool>, "hidden" : <bool>, "secondary" : <bool>, "pingTimeMillis" : <num> }, { "addr" : "cfg2.example.net:27019", "ok" : <bool>, "ismaster" : <bool>, "hidden" : <bool>, "secondary" : <bool>, "pingTimeMillis" : <num> }, { "addr" : "cfg3.example.net:27019", "ok" : <bool>, "ismaster" : <bool>, "hidden" : <bool>, "secondary" : <bool>, "pingTimeMillis" : <num> } ] }, "shardB" : { "hosts" : [ { "addr" : "shard2.example.net:27018", "ok" : <bool>, "ismaster" : <bool>, "hidden" : <bool>, "secondary" : <bool>, "pingTimeMillis" : <num> } ] }, "shardA" : { "hosts" : [ { "addr" : "shard1.example.net:27018", "ok" : <bool>, "ismaster" : <bool>, "hidden" : <bool>, "secondary" : <bool>, "pingTimeMillis" : <num> } ] } }, "ok" : 1, "$clusterTime" : { "clusterTime" : <timestamp>, "signature" : <document> }, "operationTime" : <timestamp> }
输出
connPoolStats.replicaSetMatchingStrategy
新增版本5.0.
在
mongos
实例上,此值报告实例用于确定其连接池到副本集内部节点最小大小限制的策略。在
mongod
实例上,此值报告实例用于确定其连接池到 其他 副本集内部节点最小大小限制的策略。mongos
和mongod
的策略可以通过ShardingTaskExecutorPoolReplicaSetMatching
参数来设置。注意
如果将
ShardingTaskExecutorPoolReplicaSetMatching
设置为"automatic"
,则replicaSetMatchingStrategy
仍然描述正在使用的实际策略,而不是"automatic"
。要查找ShardingTaskExecutorPoolReplicaSetMatching
的值,请使用getParameter
命令,该命令返回服务器参数的值。db.adminCommand( { getParameter : 1, "ShardingTaskExecutorPoolReplicaSetMatching" : 1 } )
connPoolStats.acquisitionWaitTimes
新增版本6.3.
文档报告了从
mongos
到mongod
获取连接请求的等待时间直方图:文档包含以毫秒为单位的时间范围和每个时间范围内连接请求的数量。
-inf
表示负无穷,(-inf, 0ms)
范围内的连接请求没有等待。inf
表示正无穷,[1000ms, inf)
范围内的连接请求等待时间大于或等于 1,000 毫秒。totalCount
是所有时间范围内连接请求的总数。
"acquisitionWaitTimes" : { "(-inf, 0ms)" : { "count" : <num> }, "[0ms, 50ms)" : { "count" : <num> }, "[50ms, 100ms)" : { "count" : <num> }, "[100ms, 150ms)" : { "count" : <num> }, "[150ms, 200ms)" : { "count" : <num> }, "[200ms, 250ms)" : { "count" : <num> }, "[250ms, 300ms)" : { "count" : <num> }, "[300ms, 350ms)" : { "count" : <num> }, "[350ms, 400ms)" : { "count" : <num> }, "[400ms, 450ms)" : { "count" : <num> }, "[450ms, 500ms)" : { "count" : <num> }, "[500ms, 550ms)" : { "count" : <num> }, "[550ms, 600ms)" : { "count" : <num> }, "[600ms, 650ms)" : { "count" : <num> }, "[650ms, 700ms)" : { "count" : <num> }, "[700ms, 750ms)" : { "count" : <num> }, "[750ms, 800ms)" : { "count" : <num> }, "[800ms, 850ms)" : { "count" : <num> }, "[850ms, 900ms)" : { "count" : <num> }, "[900ms, 950ms)" : { "count" : <num> }, "[950ms, 1000ms)" : { "count" : <num> }, "[1000ms, inf)" : { "count" : <num> }, "totalCount" : <num> }
connPoolStats.numClientConnection
报告当前
mongod
/mongos
实例到 分片集群 或 副本集 其他成员的活跃和存储的同步连接数量。这些连接是
totalAvailable
、totalCreated
和totalInUse
所报告的数据的子集。
connPoolStats.numAScopedConnection
报告当前
mongod
/mongos
实例向分片集群或副本集其他成员发起的活跃和存储的 范围同步 连接数。这些连接是
totalAvailable
、totalCreated
和totalInUse
所报告的数据的子集。
connPoolStats.pools
报告按连接池分组(使用中/可用/创建/刷新)的连接统计信息。一个
mongod
或mongos
有两种不同的外出连接池基于 DBClient 的连接池(“写入路径”)
基于 NetworkInterfaceTL 的连接池(“读取路径”)。
对于每个连接池,命令返回一个类似于以下文档的结果
{ "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "acquisitionWaitTimes" : <document>, // Added in MongoDB 6.3 "[host1]" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, "[host2]" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num>, "acquisitionWaitTimes" : <document> // Added in MongoDB 6.3 }, ... } 注意
如果某个特定连接池没有连接(使用中/可用/创建/刷新),则
connPoolStats
不会返回该池的统计信息。connPoolStats.pools.NetworkInterfaceTL-TaskExecutorPool-[n]
显示与TaskExecutor池相关的连接统计信息。通常,每个核心将有一个TaskExecutorPool,例如
pools.NetworkInterfaceTL-TaskExecutorPool-0
...pools.NetworkInterfaceTL-TaskExecutorPool-7
,适用于8核处理器。
connPoolStats.pools.NetworkInterfaceTL-Replication
如果命令在副本集的成员上运行,则可用。
显示当前
mongod
实例与副本集的其他成员之间的连接池统计信息。
connPoolStats.pools.[pool].acquisitionWaitTimes
新增版本6.3.
报告从
mongos
到mongod
获取连接的请求等待时间。有关详细信息,请参阅connPoolStats.acquisitionWaitTimes
。
connPoolStats.hosts
按主机分组报告连接统计(使用中/可用/创建/刷新)。
包含代表当前 文档 的信息,这些文档描述了当前
mongod
/mongos
实例与 分片集群 或 副本集 中每个成员之间的连接。connPoolStats.hosts.[host].acquisitionWaitTimes
新增版本6.3.
报告从
mongos
到mongod
获取连接的请求等待时间。有关详细信息,请参阅connPoolStats.acquisitionWaitTimes
。
connPoolStats.replicaSets
包含代表连接到当前
mongod
/mongos
的每个副本集相关的信息的报告。connPoolStats.replicaSets.[replicaSets].hosts
这些值来自副本集状态值。
connPoolStats.replicaSets.[replicaSet].hosts[n].addr
以副本集中的成员在
[hostname]:[port]
格式报告地址。
connPoolStats.replicaSets.[replicaSet].hosts[n].tags
报告
members[n].tags
,如果此集成员已配置标签。
有关 ok
状态字段、operationTime
字段和 $clusterTime
字段的详细信息,请参阅响应。