mongostat状态检测

mongostat是mongdb自带的状态检测工具,在命令行下使用。
间隔固定时间获取mongodb的当前运行状态,并输出。
默认是每秒刷新一次状态
如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。

1)语法

mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123456 --authenticationDatabase admin

2)结果

mongodb 数据变更监听 mongodb监听变化_mongodb 数据变更监听

参数

说明

insert

每秒插入次数

query

每秒查询次数

update

每秒更新次数

delete

每秒删除次数

getmore

每秒执行getmore次数

command

每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令

注: 一秒内执行的命令数比如批量插入,只认为是一条命令(所以意义应该不大)

dirty

仅仅针对WiredTiger引擎,官网解释是脏数据字节的缓存百分比

used

仅仅针对WiredTiger引擎,官网解释是正在使用中的缓存百分比

flushes

For WiredTiger引擎:指checkpoint的触发次数在一个轮询间隔期间

For MMAPv1 引擎:每秒执行fsync将数据写入硬盘的次数

注:一般都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。

flush开销是很大的,如果频繁的flush,可能就要找找原因了

vsize

虚拟内存使用量,单位MB

(这是 在mongostat 最后一次调用的总数据)

res

物理内存使用量,单位MB

(这是 在mongostat 最后一次调用的总数据)

注:vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存

qr|qw

qr:客户端等待从MongoDB实例读数据的队列长度

qw:客户端等待从MongoDB实例写入数据的队列长度

ar|aw

ar:执行读操作的活跃客户端数量

aw:执行写操作的活客户端数量

netIn

网络带宽压力,MongoDB实例的网络进流量

netOut

网络带宽压力,MongoDB实例的网络出流量

conn

打开连接的总数,是qr,qw,ar,aw的总和

注:MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数,maxIncomingConnections,阿里工程师建议在5000以下,基本满足多数场景

time

时间戳