MongoDB 监控
在安装部署并允许MongoDB服务后,如果需要了解MongoDB的运行情况,并查看MongoDB的性能。这样在大流量得情况下可以很好的应对并保证MongoDB正常运作。
mongostat 命令
mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果发现数据库突然变慢或者有其他问题的话,你第一手的操作就考虑采用mongostat来查看mongo的状态。

mongostat命令输出详解:
inserts/s 每秒插入次数
query/s 每秒查询次数
update/s 每秒更新次数
delete/s 每秒删除次数
getmore/s 每秒执行getmore次数,查询时游标(cursor)的getmore操作
command/s 每秒的命令数,除了插入、查找、更新、删除操作,还统计了别的命令
dirty: 脏数据字节的缓存百分比
used: 正在使用中的缓存百分比
flushs/s 每秒执行fsync将数据写入硬盘的次数
vsize 虚拟内存使用量,单位是MB
res 物理内存使用量,单位是MB
qr: 客户端等待从MongoDB实例读数据的队列长度
qw:客户端等待从MongoDB实例写入数据的队列长度
ar: 执行读操作的活跃客户端数量
aw: 执行写操作的活客户端数量
注:如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了
netIn:MongoDB实例的网络进流量
netOut:MongoDB实例的网络出流量
conn 当前连接数
time 时间戳
mongotop 命令
mongotop也是mongodb下的一个内置工具,mongotop提供了一个方法,用来跟踪一个MongoDB的实例,查看哪些大量的时间花费在读取和写入数据。 mongotop提供每个集合的水平的统计数据。默认情况下,mongotop返回值的每一秒。

带参数实例
mongotop <sleeptime> 等待多少秒输出一次结果

mongotop 输出信息可以查看每个文档的读写时间,定位是那个文档实例出现异常。