mongostat状态检测
mongostat是mongdb自带的状态检测工具,在命令行下使用。
间隔固定时间获取mongodb的当前运行状态,并输出。
默认是每秒刷新一次状态
如果你发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。
1)语法
mongostat
mongostat --host 127.0.0.1:27017 -uroot -p123456 --authenticationDatabase admin
2)结果
参数 | 说明 |
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 | 时间戳 |