参考文档:mongostat
mongostat提供了当前运行的mongod或者mongos实例的大概状态。mongostat有点类似Linux的vmstat,但mongostat提供的是mongod或者mongos实例的信息。
从MongoDB 4.4开始,mongostat现在与MongoDB Server分开发布,并使用自己的版本控制,初始版本为100.0.0。此前,mongostat与MongoDB Server一起发布,并使用匹配的版本控制。
mongostat 可能可以与早期版本的MongoDB server兼容,但是这种兼容性没有保障。
(1)安装方式
tar -zxvf mongodb-database-tools-*-100.7.0.tgz -C /opt/mongodb
其他安装方式:数据库工作安装文档
(2)语法
mongostat
(3)需要的权限
对于开启了认证的数据库,需要加上–auth选项,指定–username和–password,连接的用户需要有整个集群的serverStatus 权限。
内置角色clusterMonitor也具备对应的权限。创建一个运行mongostat的角色:
use admindb.createRole( { role: "mongostatRole",privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [] })
(4)选项
–discover 返回所有副本集成员或集群的统计信息
–all 返回所有可选的信息
–json 返回json模式
-O 指定需要返回的信息
其他选项请参考官方文档
(5)返回值详解
mongostat返回反映1秒内操作的值。当mongostat<sleeptime>的值大于1时,mongostat会对统计数据进行平均,以反映每秒的平均操作数。
inserts :每秒插入数据库的对象数。如果后面跟着星号(例如*),则该基准是指复制的操作。
query : 每秒的查询操作数。
update : 每秒的更新操作数。
detele : 每秒的删除操作数。
getmore : 每秒获取更多(即光标批处理)操作的次数。
command : 每秒的命令数。在从节点上,mongostat以本地|复制命令的形式显示由管道字符(例如|)分隔的两个值。
dirty : 仅适用于WiredTiger存储引擎,WiredTiger缓存中包含脏字节的百分比。计算方式:wiredTiger.cache.”tracked dirty bytes in the cache”/wiredTiger.cache.”maximum bytes configured” –db.serverStatus().wiredTiger.cache
used : 仅适用于WiredTiger存储引擎,正在使用的WiredTiger缓存的百分比。计算方式:wiredTiger.cache.”bytes currently in the cache”/wiredTiger.cache.”maximum bytes configured”.
flushes : 仅适用于WiredTiger存储引擎,刷新是指在每个轮询间隔之间触发的WiredTige检查点的数量。
mapped : 仅适用于MMAPv1存储引擎 ,映射的数据总量(以MB为单位)。这是最后一次mongostat调用时的总数据大小。
vsize : 进程在最后一次mongostat调用时使用的虚拟内存量(MB)
res : 进程在最后一次mongostat调用时使用的驻留内存量(MB)。
faults : 全局写入锁定的时间百分比。仅当mongostat针对3.0之前版本的MongoDB实例运行时才会出现。
qr :等待从MongoDB实例读取数据的客户端队列的长度。
qw : 等待从MongoDB实例写入数据的客户端队列的长度。
ar :执行读取操作的活动客户端的数量。
aw : 执行写入操作的活动客户端的数量。。
netIn : MongoDB实例接收的网络流量(以字节为单位)。这包括来自mongostat本身的流量。
netOut : MongoDB实例发送的网络流量(以字节为单位)。这包括来自mongostat本身的流量
conn : 打开的连接的总数。
set : 复制副本集的名称(如果适用)。
repl : 成员的复制状态,如下
PRI primary
SEC secondary
REC recovering
UNK unknown
RTR mongos process (“router”)
ARB arbiter
例子:
mongostat –port 27017 –discover