MongoDB 性能分析

来源:互联网 发布:2017网络十大英语热词 编辑:程序博客网 时间:2024/06/05 14:46

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

  一、命令行方式

  格式: mongostat -u username -p password -n 行数 间隔秒数

  输出项说明:

  • inserts/s 每秒插入次数
  • query/s 每秒查询次数
  • update/s 每秒更新次数
  • delete/s 每秒删除次数
  • getmore/s 每秒执行getmore次数
  • command/s 每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令
  • flushs/s 每秒执行fsync将数据写入硬盘的次数。一般都是0,或者1,通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。flush开销是很大的,如果频繁的flush,可能就要找找原因了。
  • mapped/s 所有的被mmap的数据量,单位是MB,
  • vsize 虚拟内存使用量,单位MB
  • res 物理内存使用量,单位MB
  • faults/s 每秒访问失败数(只有Linux有),数据被交换出物理内存,放到swap。不要超过100,否则就是机器内存太小,造成频繁swap写入。此时要升级内存或者扩展
  • locked % 被锁的时间百分比,尽量控制在50%以下,这个数值过大(经常超过10%),那就是出状况了。
  • idx miss % 索引不命中所占百分比。正常情况下,所有的查询都应该通过索引,也就是idx miss为0。如果这里数值较大,是不是缺少索引。
  • q t|r|w 当Mongodb接收到太多的命令而数据库被锁住无法执行完成,它会将命令加入队列。这一栏显示了总共、读、写3个队列的长度,都为0的话表示mongo毫无压力。高并发时,一般队列值会升高。如果这两个数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。看看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了。
  • netIn|out: network traffic in|out - bits,网络带宽压力,一般MongoDB,网络不会成为瓶颈
  • conn 当前连接数
  • time 时间戳

  举例:

[root@localhost bin]# ./mongostat -u admin -p 123456 -rowcount 5 1
connected to: 127.0.0.1

insert  query update delete getmore command flushes mapped  vsize    res        faults    locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn       time
    *0     *0     *0      *0          0       1|0        0   1.11g  2.56g   751m      0   rpt_def:0.0%          0       0|0      0|0    62b     3k      4    14:31:04
    *0     *0     *0      *0          0       1|0        0   1.11g  2.56g   751m      0   rpt_def:0.0%          0       0|0      0|0    62b     3k      4    14:31:05
    *0     *0     *0      *0          0       1|0        0   1.11g  2.56g   751m      0   rpt_def:0.0%          0       0|0      0|0    62b     3k      4    14:31:06
    *0     *0     *0      *0          0       1|0        0   1.11g  2.56g   751m      0   rpt_def:0.0%          0       0|0      0|0    62b     3k      4    14:31:07
    *0     *0     *0      *0          0       1|0        0   1.11g  2.56g   751m      0   rpt_def:0.0%          0       0|0      0|0    62b     3k      4    14:31:08
   

  二、Web方式

  web方式默认使用端口是程序端口+1000。如

       http://192.168.168.34:28017



  参考:http://www.cnblogs.com/renyb/archive/2013/01/18/2866632.html




0 0