MongoDB权威指南学习笔记9---管理若干技巧

1 找出慢的操作

db.currentOp()

fubenji:PRIMARY> db.currentOp()
{
 "inprog" : [
  {
   "opid" : 3105,
   "active" : true,
   "secs_running" : 3,
   "op" : "getmore",
   "ns" : "local.oplog.rs",
   "query" : {
    
   },
   "client" : "192.168.56.254:57039",
   "desc" : "conn3",
   "threadId" : "0x7fa5e03dc700",
   "connectionId" : 3,
   "waitingForLock" : false,
   "numYields" : 0,
   "lockStats" : {
    "timeLockedMicros" : {
     "r" : NumberLong(120),
     "w" : NumberLong(0)
    },
    "timeAcquiringMicros" : {
     "r" : NumberLong(21),
     "w" : NumberLong(0)
    }
   }
  }
 ]
}

 ---

opid---操作的唯一标识符,可通过它来终止一个操作。

active---是否正在运行,如果为false,表示此操作已经交出或正在等待其它操作交出锁

secs_running---该操作已经执行的时间,可通过它来判断是哪些查询耗时过长,占用了更多的数据库资源

op---操作类型,注意,数据库命令也可以当做查询来处理!

desc---日志中与此连接相关的每一条记录都以这个为前缀,以此来筛选日志信息!

locks---描述锁的类型,^表示全局锁。

waitingForLock---表示该操作是否因正在等待其它操作交出锁而处于阻塞状态

numYields---该操作交出锁而使得其它操作可以运行的次数,通常

进行文档搜索的操作比如查询,更新和删除可交出锁,只有在必要时才交出锁。

lockstats.timeAcquiringMicros-表示该操作需要多长时间才可以获得所需要的锁。

----------------------

在执行currentOp时,可以添加过滤条件,格式如下:

db.currentOp({"ns":"prod.users"})

2 终止某个操作

db.killOp(opid)

 一般来说,只有交出了锁的进程才能被终止,因此更新,查找,删除可以被终止,

正在占用锁,或正在等待其它操作交出锁的操作则通常无法被终止!

3 系统分析器

默认下,处于关闭状态,不进行任何记录。

开启:db.setProfilingLevel(2)

 2---表示分析器会记录所有内容在当前数据库的system.profile 固定集合中。

1---长耗时操作,默认为大于100ms的操作。

也可以自定时长db.setProfilingLevel(1,500).

关闭分析器---db.setProfilingLevel(0)

db.getProfilingLevel()

4 查询文档大小

Object.bsonSize(查询条件)

不包括padding 和索引大小

5 一个集合的统计信息

db.collection.stats()

fubenji:PRIMARY> db.doc.stats()
{
 "ns" : "nutch.doc",
 "count" : 1,
 "size" : 1008,
 "avgObjSize" : 1008,
 "storageSize" : 8192,
 "numExtents" : 1,
 "nindexes" : 3,
 "lastExtentSize" : 8192,
 "paddingFactor" : 1,
 "systemFlags" : 1,
 "userFlags" : 1,
 "totalIndexSize" : 24528,
 "indexSizes" : {
  "_id_" : 8176,
  "n_1" : 8176,
  "who?_1" : 8176
 },
 "ok" : 1
}

6数据库的统计信息

db.stats()

 fubenji:PRIMARY> db.stats(1024)
{
 "db" : "nutch",
 "collections" : 6,
 "objects" : 23,
 "avgObjSize" : 114.78260869565217,
 "dataSize" : 2,
 "storageSize" : 48,
 "numExtents" : 6,
 "indexes" : 8,
 "indexSize" : 63,
 "fileSize" : 65536,
 "nsSizeMB" : 16,
 "dataFileVersion" : {
  "major" : 4,
  "minor" : 5
 },
 "extentFreeList" : {
  "num" : 2,
  "totalSize" : 544
 },
 "ok" : 1
}

7自带小甜心

mongotop

/usr/local/mongodb-linux-x86_64-2.6.1# ./bin/mongotop --port 27018
connected to: 127.0.0.1:27018

                            ns       total        read       write  2014-08-04T17:56:38
          admin.system.indexes         0ms         0ms         0ms
            admin.system.roles         0ms         0ms         0ms
            admin.system.users         0ms         0ms         0ms
          admin.system.version         0ms         0ms         0ms
                      local.me         0ms         0ms         0ms
                local.oplog.rs         0ms         0ms         0ms
        local.replset.minvalid         0ms         0ms         0ms

 

 

/usr/local/mongodb-linux-x86_64-2.6.1# ./bin/mongotop --port 27018 -locks
connected to: 127.0.0.1:27018

                            db       total        read       write  2014-08-04T17:57:16
                     zapya_api         0ms         0ms         0ms
                          test         0ms         0ms         0ms
                         nutch         0ms         0ms         0ms
                         local         0ms         0ms         0ms
                         admin         0ms         0ms         0ms
                             .         0ms         0ms         0ms

 /usr/local/mongodb-linux-x86_64-2.6.1# ./bin/mongostat --port 27018
connected to: 127.0.0.1:27018
insert  query update delete getmore command flushes mapped  vsize    res faults      locked db idx miss %     qr|qw   ar|aw  netIn netOut  conn     set repl       time
    *0     *0     *0     *0       0     2|0       0  2.31g  5.14g    83m      0 zapya_api:0.0%          0       0|0     0|0   207b     3k     4 fubenji  PRI   01:58:23
    *0     *0     *0     *0       0     1|0       0  2.31g  5.14g    83m      0     nutch:0.0%          0       0|0     0|0    62b     3k     4 fubenji  PRI   01:58:24
    *0     *0     *0     *0       1     2|0       0  2.31g  5.14g    83m      0         .:0.1%          0       0|0     0|0   254b     3k     4 fubenji  PRI   01:58:25
    *0     *0     *0     *0       0     1|0       0  2.31g  5.14g    83m      0         .:0.0%          0       0|0     0|0    62b     3k     4 fubenji  PRI   01:58:26
    *0     *0     *0     *0       0     2|0       0  2.31g  5.14g    83m      0 zapya_api:0.0%          0       0|0     0|0   207b     3k     4 fubenji  PRI   01:58:27
    *0     *0     *0     *0       0     1|0       0  2.31g  5.14g    83m      0 zapya_api:0.0%          0       0|0     0|0    62b     3k     4 fubenji  PRI   01:58:28
    *0     *0     *0     *0       0     2|0       0  2.31g  5.14g    83m      0 zapya_api:0.0%          0       0|0     0|0   207b     3k     4 fubenji  PRI   01:58:29
    *0     *0     *0     *0       1     1|0       0  2.31g  5.14g    83m      0 zapya_api:0.0%          0       0|0     0|0   109b     3k     4 fubenji  PRI   01:58:30
    *0     *0     *0     *0       0     2|0       0  2.31g  5.14g    83m      0     local:0.0%          0       0|0     0|0   207b     3k     4 fubenji  PRI   01:58:31

 

insert  query update delete getmore command ---每种对应操作的发生次数

flushes ---mongod将数据刷新到磁盘的次数

mapped  ---mongod所映射的内存数量,通常约等于数据目录的大小

vsize   ---mongod正在使用的虚拟内存大小,通常为数据目录的2倍大小,一次用于映射的文件,一次用于日记系统

res---mongod使用的内存大小,通常应该尽量接近机器的所有内存大小。

 
 locked db ---在上一个时间片中,锁定时间最长的数据库,该百分比是根据数据库被锁定的时间
 和全局锁的锁定时间来计算的,意味着该值可能超过100%
 
 idx miss %    ---有多少索引在访问中发生了缺页中断,也即是索引入口或者被搜索的索引内容不在内存中,需要磁盘IO.

 qr|qw   ---读写队列的大小,有多少读写被阻塞等待处理
 
 ar|aw  ---活动客户端的数量,也就是正在进行读写操作的客户端。
 
 netIn ---网络进来的字节数。
 
 netOut ---通过网络传出去的字节数

 conn   ---服务器打开的连接数。
time   ---以上统计信息所用的时间

8 查看oplog大小

db.printReplicationInfo()
configured oplog size:   990MB
log length start to end: 5394237secs (1498.4hrs)
oplog first event time:  Wed Jun 04 2014 01:41:53 GMT+0800 (CST)
oplog last event time:   Tue Aug 05 2014 12:05:50 GMT+0800 (CST)
now:                     Tue Aug 05 2014 14:20:34 GMT+0800 (CST)

 

你可能感兴趣的:(mongodb,管理,监控)