第五章:mongodb 性能监控


1. mongosniff 

 此工具可以从底层监控到底有哪些命令发送给了 MongoDB去执行,从中就可以进行分析: 以root身份执行:

./mongosniff --source NET lo 

  然后其会监控位到本地以 localhost 监听默认 27017 端口的 MongoDB 的所有包请求,如执行”show    dbs”  操作 

[root@localhost bin]# ./mongo
MongoDB shell version: 1.8.1
connecting to: test
> show dbs
admin      0.0625GB
foo          0.0625GB
local      (empty)
test        0.0625GB
>

那么你可以看到如下输出。 

[root@localhost bin]# ./mongosniff --source NET lo
sniffing... 27017  
127.0.0.1:38500    -->> 127.0.0.1:27017 admin.$cmd    60 bytes    id:537ebe0f 1400815119 query: { whatsmyuri: 1 }    ntoreturn: 1 ntoskip: 0 127.0.0.1:27017    <<--    127.0.0.1:38500      78 bytes    id:531c3855    1394358357 - 1400815119    reply n:1 cursorId: 0    { you: "127.0.0.1:38500", ok: 1.0 }

如果将这些输出到一个日志文件中,那么就可以保留下所有数据库操作的历史记录,对于后
期的性能分析和安全审计等工作将是一个巨大的贡献。 

2.  Mongostat 

此工具可以快速的查看某组运行中的 MongoDB 实例的统计信息,用法如下:
[root@localhost bin]# ./mongostat  

D:\Program Files\mongodb\Server\3.1\bin>mongostat
insert query update delete getmore command flushes mapped  vsize   res       faults qr|qw ar|aw netIn netOut conn     time
    *0    *0     *0     *0       0          1|0          0     240.0M  600.0M 84.0M      1   0|0   0|0   79b    10k    1 14:45:30
    *0    *0     *0     *0       0          1|0          0     240.0M  600.0M 84.0M      1   0|0   0|0   79b    10k    1 14:45:31
    *0    *0     *0     *0       0          1|0          0     240.0M  600.0M 84.0M      1   0|0   0|0   79b    10k    1 14:45:32

字段说明 字段说明 字段说明 字段说明:
  insert:  每秒插入量
  query:  每秒查询量
  update:  每秒更新量
  delete:  每秒删除量
  locked:  锁定量
  qr | qw:  客户端查询排队长度(读|写)
  ar | aw:  活跃客户端量(读|写)
  conn:  连接数
  time:  当前时间
它每秒钟刷新一次状态值,提供良好的可读性,通过这些参数可以观察到一个整体的性能情况。 
 
3. db.serverStatus 

  这个命令是最常用也是最基础的查看实例运行状态的命令之一,下面我们看一下它的输出: 

 db.serverStatus()  

      {
                     "host" : "localhost.localdomain",
                  "version" : "1.8.1",                --服务器版本
                  "process" : "mongod",
                   "uptime" : 3184,                   --启动时间(秒)
           "uptimeEstimate" : 3174,                            
                "localTime" : ISODate("2012-05-28T11:20:22.819Z"),
               "globalLock" : {
                "totalTime" : 3183918151,
                 "lockTime" : 10979,
                    "ratio" : 0.000003448267034299149,
             "currentQueue" : {
                    "total" : 0,                    --当前全部队列量
                  "readers" : 0,                    --读请求队列量
                  "writers" : 0                     --写请求队列量
                                    },
          "activeClients" : {
                  "total" : 0,             --当前全部客户端连接量
                "readers" : 0,             --客户端读请求量
                "writers" : 0              --客户端写请求量
                                          }
                                         },
            "mem" : {
                   "bits" : 32,                --32位系统
               "resident" : 20,                --占用物量内存量
                "virtual" : 126,               --虚拟内存量
              "supported" : true,              --是否支持扩展内存
                 "mapped" : 32
                                               },
            "connections" : {
                "current" : 1,                 --当前活动连接量
              "available" : 818                --剩余空闲连接量
                                                },
                                      ……
             "indexCounters" : {
                     "btree" : {
                  "accesses" : 0,              --索引被访问量
                      "hits" : 0,              --索引命中量
                                                "misses" : 0,       --索引偏差量
                                                "resets" : 0,
                                                "missRatio" : 0    --索引偏差率(未命中率)
                                }
                },
                                       ……
             "network" : {
             "bytesIn" : 1953,            --发给此服务器的数据量(单位:byte)
            "bytesOut" : 25744,           --此服务器发出的数据量(单位:byte)
         "numRequests" : 30               --发给此服务器的请求量
                },
          "opcounters" : {
              "insert" : 0,               --插入操作的量 

4.   db.stats 

查看数据库状态信息。使用样例如下
db.stats()
{
                 "db" : "test",
        "collections" : 12,            --collection数量
            "objects" : 76,            --对象数量
         "avgObjSize" : 3604.684210526316,  --对象平均大小
           "dataSize" : 273956,         --数据大小
        "storageSize" : 5423104,    --数据大小(含预分配空间)
         "numExtents" : 13,         --事件数量
            "indexes" : 17,         --索引数量
          "indexSize" : 138992,     --索引大小
           "fileSize" : 67108864,   --文件大小
           "nsSizeMB" : 16,
     "extentFreeList" : {
                "num" : 0,
          "totalSize" : 0
        },
    "dataFileVersion" : {
              "major" : 4,
              "minor" : 22
        },
        "ok" : 1                --本次取stats是否正常
}

5.第三方工具
MongoDB 从一面世就得到众多开源爱好者和团队的重视,在常用的监控框架如  cacti、Nagios、Zabbix 等基础上进行扩展,
进行 MongoDB 的监控都是非常方便。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值