Mongodb性能监控

当你的mongodb出现插入查询等过慢的问题,你第一想到应该是查看mongodb运行状态。

mongostat是Mongodb自带命令,位于Mongodb bin目录下,使用方法:./mongostat,图示如下:

这是在SecureCRT下显示的,SecureCRT默认显示列数过小,如果出现换行情况,在选项--全局选项--调整最大列为150即可。

各指标含义:

  • inserts/s 每秒插入次数
  • query/s 每秒查询次数
  • update/s 每秒更新次数
  • delete/s 每秒删除次数
  • getmore/s 每秒执行getmore次数
  • command/s 每秒的命令数,比如count
  • flushs/s 每秒执行fsync将数据写入硬盘的次数。
  • mapped/s 所有的被mmap的数据量,单位是MB,
  • vsize 虚拟内存使用量,单位MB
  • res 物理内存使用量,单位MB
  • faults/s 每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入。此时要升级内存或者扩展
  • locked % 被锁的时间百分比,尽量控制在50%以下吧
  • idx miss % 索引不命中所占百分比。如果太高的话就要考虑索引是不是少了
  • q t|r|w 当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。
  • conn 当前连接数
  • time 时间戳

Mongodb良好运行标示:

insert query update delete 较稳定,这4列数据越大说明性能越高,如果运行一定时间后,指标骤减,说明程序处理存在问题。

faults越小越好,越小说明操作失败率越低;

idx miss越小越好,越小说明索引命中率越高,Mongodb索引非常重要;

netin/netout 数据越大越好,越大说明进出数据交换越大。

posted @ 2012-11-13 11:08  王 庆  阅读(1987)  评论(0编辑  收藏  举报