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
mongos
命令。分片分片集群有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>, "pools" : { "NetworkInterfaceTL-TaskExecutorPool-0" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "NetworkInterfaceTL-TaskExecutorPool-1" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "NetworkInterfaceTL-TaskExecutorPool-2" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "NetworkInterfaceTL-TaskExecutorPool-3" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "NetworkInterfaceTL-ShardRegistry" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "global" : { "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } } }, "hosts" : { "cfg3.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg1.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "cfg2.example.net:27019" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard2.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> }, "shard1.example.net:27018" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" :<num> } }, "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.totalAvailable
报告从当前
mongod
/mongos
实例到分片集群或副本集其他成员的可用传出连接总数。
connPoolStats.totalCreated
报告当前
mongod
/mongos
实例曾向分片集群或副本集的其他成员创建的传出连接总数。
connPoolStats.replicaSetMatchingStrategy
版本 5.0 中的新增功能。
在
mongos
实例上,此值报告该实例用于确定其连接池到副本集中节点的最小大小限制的策略。在
mongod
实例上,此值报告该实例用于确定其与其他副本集中的节点的连接池的最小大小限制的策略。可以使用
mongos
mongod
ShardingTaskExecutorPoolReplicaSetMatching
参数设置针对 和 的策略。注意
如果
ShardingTaskExecutorPoolReplicaSetMatching
设立为"automatic"
,则replicaSetMatchingStrategy
仍然描述实际使用的策略,而不是"automatic"
。 要查找ShardingTaskExecutorPoolReplicaSetMatching
的值,请使用getParameter
返回服务器参数的值:db.adminCommand( { getParameter : 1, "ShardingTaskExecutorPoolReplicaSetMatching" : 1 } )
connPoolStats.numClientConnection
报告从当前
mongod
/mongos
实例到分片集群或副本集其他成员的活动和存储的传出同步连接的数量。这些连接是
totalAvailable
、totalCreated
和totalInUse
报告的数据子集池的一部分。
connPoolStats.numAScopedConnection
报告从当前 /
mongos
实例到分mongod
片集群 或 副本集 其他成员的活动和已存储传出 范围同步 连接的数量。这些连接是
totalAvailable
、totalCreated
和totalInUse
报告的数据子集池的一部分。
connPoolStats.pools
报告按连接池分组的连接统计信息(正在使用/可用/已创建/刷新)。
mongod
或mongos
有两个不同的传出连接池系列:基于 DBClient 的池(“写入路径”)和
基于 NetworkInterfaceTL 的池(“读取路径”)。
对于每个池,该命令都会返回一个类似于以下内容的文档:
{ "poolInUse" : <num>, "poolAvailable" : <num>, "poolLeased" : <num>, "poolCreated" : <num>, "poolRefreshing" : <num>, "[host1]" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num> }, "[host2]" : { "inUse" : <num>, "available" : <num>, "leased" : <num>, "created" : <num>, "refreshing" : <num> }, ... } 注意
如果某个数据池没有连接(使用中/可用/已创建/正刷新),
connPoolStats
不会返回该数据池的统计数据。connPoolStats.pools.NetworkInterfaceTL-TaskExecutorPool-[n]
显示与 TaskExecutor 池相关的连接统计信息。 通常,每个内核有一个 TaskExecutorPool,例如
pools.NetworkInterfaceTL-TaskExecutorPool-0
...pools.NetworkInterfaceTL-TaskExecutorPool-7
表示 8 核处理器。
connPoolStats.pools.NetworkInterfaceTL-Replication
如果对副本集的成员运行该命令,则可用。
显示当前
mongod
实例与副本集其他成员之间的连接池统计信息。
connPoolStats.hosts
报告按主机分组的连接统计信息(正在使用/可用/已创建/正在刷新)。
包含文档,这些文档表示当前
mongod
/mongos
实例与分片集群或副本集的每个成员之间的连接报告。
connPoolStats.replicaSets
包含表示与连接到当前 /
mongod
的每个副本集相关的信息报告的 文档mongos
。connPoolStats.replicaSets.[replicaSets].hosts
这些值派生自副本集状态值。
connPoolStats.replicaSets.[replicaSet].hosts[n].addr
以
[hostname]:[port]
格式报告副本集节点的地址。
connPoolStats.replicaSets.[replicaSet].hosts[n].ismaster
true
如果此host
是 副本集 的 主节点 (primary node in the replica set) 节点,则报告 。
connPoolStats.replicaSets.[replicaSet].hosts[n].tags
如果该集合的该成员配置了标签,则报告
members[n].tags
。
有关 ok
状态字段、operationTime
字段和 $clusterTime
字段的详情,另请参阅响应。