MongoDB的一些性能监控指标介绍

MongoDB的性能指标可关注如下命令

1、Mongostat
2、Mongotop
3、db.serverStatus()
4、db.stats()
5、db.collection.stats()
6、rs.status()
7、sh.status()
其中db.stats9),db.collection.stats(),rs.status(),sh.status()分别记录的是库、表、复制集、分片的实时状态,不做详述。

一、Mongostat,记录mongodb实例运行的状态,如图:



insert:每秒插入数(带*的表示复制集的从库,下同)
query:每秒查询数
update:每秒更新数
delete:每秒删除数
getmore:每秒返回的游标数
command:每秒的命令数(其中从库用管道符|将本地数据和复制数据隔开) 。
dirty: wiredtiger特有的参数,记录wiredtiger缓存中脏数据的比例。
used: wiredtiger特有的参数,记录wiredtiger缓存使用百分比。
flusher: 每个查询间隔之间的checkpoint触发次数。
Vsize:虚拟内存使用量。
res:物理内存使用量。
qrw: 客户端等待从MongoDB实例读写数据的队列长度,|隔开。
arw: 执行读写操作的活跃客户端数量, |隔开。
netIn:MongoDB实例的网络进流量。
netOut:MongoDB实例的网络出流量。
conn: 连接数。
set:复制集名称。
repl:复制集中的状态。


二、mongotop,记录具体库表的耗时。
如图:


ns:库表名
total:当前库表名操作的总时间。
read:当前库表名读操作的总时间。
write: 当前库表名写操作的总时间。


三、db.serverStatus() 记录数据库的状态的所有信息,监控的指标大部分都是基于此命令,该命令几乎无性能消耗
此命令比较详细,这里不一一描述了,仅介绍下关于锁的部分



acquireCount:当前操作获取锁的次数
acquireWaitCount:当前操作获取锁时需等待的次数
timeAcquiringMicros:当前操作等待锁的总时间(微妙)
r:意向共享锁
w:意向排他锁
R:共享锁
X:排他锁