码迷,mamicode.com
首页 > 数据库 > 详细

mongodb之查看状态的命令详解

时间:2015-10-22 15:44:29      阅读:584      评论:0      收藏:0      [点我收藏+]

标签:mongodb状态 命令详解

   常用的参看 mongodb 状态的三个命令  db.stat() db.serverStatus() db.currentOp(),下面分别详细介绍一下

 1  db.stat()

获取当前数据库的信息,比如Obj总数、数据库总大小、平均Obj大小等

SECONDARY> db.stats()
{
	"db" : "onroad",  #库名
	"collections" : 9, #集合数
	"objects" : 130751421,  // 记录在数据库中的所有文档总数 
	"avgObjSize" : 559.257981907516,   // 数据库中所有文档的平均大小,等于 dataSize/objects  
	"dataSize" : 73123775840,  // 数据库所有文档的总大小,以字节为单位  ---> 73G
	"storageSize" : 80531728032,  // 分配给每一个文档的磁盘空间    
	"numExtents" : 162,  ,#事件数
	"indexes" : 14, #索引数
	"indexSize" : 19496636768, #索引大小
	"fileSize" : 332680921088,  #文件大小
	"nsSizeMB" : 16,  #命名空间文件的大小 
	"dataFileVersion" : {  #包含 数据库文件的磁盘格式信息 的文档
		"major" : 4, #主要版本号的 磁盘格式数据库的数据文件
		"minor" : 5  #次要版本号
	},
	"extentFreeList" : {
		"num" : 436,
		"totalSize" : 229138838864
	},
	"ok" : 1
}


获取当前数据库中集合的信息

> db.gps_point.stats()
{
      "ns" : "onroad.gps_point",  #命名空间
      "count" : 51101154, #记录数
      "size" : 31394549796,  #大小
      "avgObjSize" : 614,
      "storageSize" : 32212257856,
      "numExtents" : 61,
      "nindexes" : 2,
      "lastExtentSize" : 16224256,
      "paddingFactor" : 1,
      "systemFlags" : 1,
      "userFlags" : 0,
      "totalIndexSize" : 5701353728,
      "indexSizes" : {
               "_id_" : 2655262288,   #索引为_id_的索引大小 
               "user_id_1_data_time_-1" : 3046091440
      },
      "capped" : true,  #为固定大小集合
      "max" : NumberLong("9223372036854775807"),
      "ok" : 1
}

  2  db.serverStatus()

  获取服务器的状态

详细说明 参考 http://docs.mongoing.com/manual/reference/command/serverStatus.html

PRIMARY> db.serverStatus()
{
	"host" : "cd9a511a2d0e", #主机名 
	"version" : "2.6.1", ,#版本号 
	"process" : "mongod", #进程名 
	"pid" : NumberLong(41), #进程ID
	"uptime" : 3785943,  #运行时间
	"uptimeMillis" : NumberLong("3785942955"), 
	"uptimeEstimate" : 3755878,
	"localTime" : ISODate("2015-10-16T02:46:27.368Z"),  #当前时间
	"asserts" : {  #各个断言的数量
		"regular" : 0,
		"warning" : 0,
		"msg" : 0,
		"user" : 58,
		"rollovers" : 0
	},
	"backgroundFlushing" : { 
		"flushes" : 63098,  #刷新次数
		"total_ms" : 144997713,  #刷新花费总时间
		"average_ms" : 2297.97637009097,  #平均时间
		"last_ms" : 10913,  #最后一次时间
		"last_finished" : ISODate("2015-10-16T02:45:40.363Z")  #最后刷新时间
	},
	"connections" : {
		"current" : 1444,  #当前连接数
		"available" : 18556,  #可用连接数
		"totalCreated" : NumberLong(2429949)
	},
	"cursors" : {
		"note" : "deprecated, use server status metrics",
		"clientCursors_size" : 1,  #客户端游标大小
		"totalOpen" : 1,  #打开游标数
		"pinned" : 0,
		"totalNoTimeout" : 481,
		"timedOut" : 84  #超时时间
	},
	"dur" : {
		"commits" : 27,
		"journaledMB" : 2.711552,
		"writeToDataFilesMB" : 5.213888,
		"compression" : 0.5158220112430492,
		"commitsInWriteLock" : 0,
		"earlyCommits" : 0,
		"timeMs" : {
			"dt" : 3003,
			"prepLogBuffer" : 1,
			"writeToJournal" : 228,
			"writeToDataFiles" : 10,
			"remapPrivateView" : 2
		}
	},
	"extra_info" : {
		"note" : "fields vary by platform",
		"heap_usage_bytes" : 96529464,  #堆使用情况(字节)
		"page_faults" : 11253067  #页面故障数
	},
	"globalLock" : {
		"totalTime" : NumberLong("3785942955000"),
		"lockTime" : NumberLong("47441423960"),
		"currentQueue" : {
			"total" : 0,
			"readers" : 0,
			"writers" : 0
		},
		"activeClients" : {
			"total" : 0,
			"readers" : 0,
			"writers" : 0
		}
	},
	"indexCounters" : {
		"accesses" : 5980339643,  #索引被访问数
		"hits" : 5980339322,  #索引命中数
		"misses" : 0,  #索引偏差数
		"resets" : 0,  #复位数
		"missRatio" : 0  #未命中率
	},
	"locks" : {
		"." : {
			"timeLockedMicros" : {
				"R" : NumberLong(1300731481),
				"W" : NumberLong("47441423960")
			},
			"timeAcquiringMicros" : {
				"R" : NumberLong("83350794378"),
				"W" : NumberLong("8842280365")
			}
		},
	},
	"network" : {
		"bytesIn" : 182494603618,  #输入数据(byte)
		"bytesOut" : NumberLong("2936449550300"),  #输出数据(byte) 
		"numRequests" : 600302443 #请求数 
	},
	"opcounters" : {
		"insert" : 214538892,  #插入操作数 
		"query" : 388689,  #查询操作数 
		"update" : 3462611, #更新操作数 
		"delete" : 0, ,#删除操作数 
		"getmore" : 188590632,  #获取更多的操作数 
		"command" : 197825527  #其他命令操作数 
	},
	"opcountersRepl" : {
		"insert" : 1,
		"query" : 0,
		"update" : 0,
		"delete" : 0,
		"getmore" : 0,
		"command" : 0
	},
	"recordStats" : {
		"accessesNotInMemory" : 8377141,
		"pageFaultExceptionsThrown" : 2926497,
		"admin" : {
			"accessesNotInMemory" : 94,
			"pageFaultExceptionsThrown" : 0
		}
	},
	"repl" : {  #复制情况
		"setName" : "c562ca6c-1d72-4c6a-a943-b46fe87e47ca",
		"setVersion" : 105039,
		"ismaster" : true,
		"secondary" : false,
		"hosts" : [
			"10.10.1.1:27017",
			"10.10.1.2:27017"
		],
		"arbiters" : [
			"10.10.1.2:27017"
		],
		"primary" : "10.10.1.4:27017",
		"me" : "10.10.1.5:27017"
	},
	"writeBacksQueued" : false,
	"mem" : {  #内存情况 
		"bits" : 64,  #64位操作系统
		"resident" : 4430,  #占有物理内存数
		"virtual" : 813370,  #占有虚拟内存数
		"supported" : true, #是否支持内存扩展
		"mapped" : 405498,
		"mappedWithJournal" : 810996
	},
	"metrics" : {
		"cursor" : {
			"timedOut" : NumberLong(84),
			"open" : {
				"noTimeout" : NumberLong(481),
				"pinned" : NumberLong(0),
				"total" : NumberLong(1)
			}
		},
		"document" : {
			"deleted" : NumberLong(0),
			"inserted" : NumberLong(214538892),
			"returned" : NumberLong("6735629965"),
			"updated" : NumberLong(6502807)
		},
		"getLastError" : {
			"wtime" : {
				"num" : 0,
				"totalMillis" : 0
			},
			"wtimeouts" : NumberLong(0)
		},
		"operation" : {
			"fastmod" : NumberLong(3483995),
			"idhack" : NumberLong(39),
			"scanAndOrder" : NumberLong(6)
		},
		"queryExecutor" : {
			"scanned" : NumberLong(107218344),
			"scannedObjects" : NumberLong(107217952)
		},
		"record" : {
			"moves" : NumberLong(1604)
		},
		"repl" : {
			"apply" : {
				"batches" : {
					"num" : 2,
					"totalMillis" : 8
				},
				"ops" : NumberLong(1)
			},
			"buffer" : {
				"count" : NumberLong(0),
				"maxSizeBytes" : 268435456,
				"sizeBytes" : NumberLong(0)
			},
			"network" : {
				"bytes" : NumberLong(709),
				"getmores" : {
					"num" : 18,
					"totalMillis" : 86108
				},
				"ops" : NumberLong(2),
				"readersCreated" : NumberLong(35)
			},
			"preload" : {
				"docs" : {
					"num" : 0,
					"totalMillis" : 0
				},
				"indexes" : {
					"num" : 1,
					"totalMillis" : 0
				}
			}
		},
		"storage" : {
			"freelist" : {
				"search" : {
					"bucketExhausted" : NumberLong(0),
					"requests" : NumberLong(6551285),
					"scanned" : NumberLong(12001208)
				}
			}
		},
		"ttl" : {
			"deletedDocuments" : NumberLong(0),
			"passes" : NumberLong(63048)
		}
	},
	"ok" : 1
}

需要关心的地方:

1  connections当前连接和可用连接数,听过一个同行介绍过,mongodb最大处理到2000个连接就不行了(要根据你的机器性能和业务来设定),所以设大了没意义。设个合理值的话,到达这个值mongodb就拒绝新的连接请求,避免被太多的连接拖垮。

2  indexCounters:btree:misses索引的不命中数,和hits的比例高就要考虑索引是否正确建立。


  3  db.currentOp()

  Mongodb 的命令一般很快就完成,但是在一台繁忙的机器或者有比较慢的命令时,你可以通过db.currentOp()获取当前正在执行的操作。

  在没有负载的机器上,该命令基本上都是返回空的

    如果你发现一个操作太长,把数据库卡死的话,可以用这个命令杀死他

> db.killOp("shard3:466404288")

这是一个负载比较高的  主从结构的 mongoDB中  主库 的结果  (insert操作)

> db.currentOp()
{
      "inprog" : [
               {
                       "opid" : 411,
                       "active" : false,
                       "op" : "none",
                       "ns" : "",
                       "query" : {
                                
                       },
                       "desc" : "repl writer worker 1",  # 和副本集之间的操作有关
                       "threadId" : "0x7f2f2203d700",
                       "waitingForLock" : false,
                       "numYields" : 0,
                       "lockStats" : {
                                "timeLockedMicros" : {
                                         "r" : NumberLong(0),
                                         "w" : NumberLong(8503)
                                },
                                "timeAcquiringMicros" : {
                                         
                                }
                       }
               },
{
                       "opid" : 1037017522,
                       "active" : true, 
                       "secs_running" : 0, 
                       "op" : "insert",  #操作名
                       "ns" : "onroad.gps_point",  #命名空间
                       "insert" : {
                                "_id" : ObjectId("56206e122dda660e74674bd1"),  #要插入数据的ID 
                                "user_id" : 315936739,  #要插入的用户ID
                                "data" : "xxxxxxxx",  #要插入的数据
                                "data_time" : NumberLong(1444965431)
                       },
                       "client" : "10.10.1.2:46880",
                       "desc" : "conn2377693",
                       "threadId" : "0x7e6b91b13700",
                       "connectionId" : 2377693,
                       "locks" : {
                                "^onroad" : "W"
                       },
                       "waitingForLock" : true,
                       "numYields" : 0,
                       "lockStats" : {
                                "timeLockedMicros" : {
                                         
                                },
                                "timeAcquiringMicros" : {
                                         
                                }
                       }
               },


本文出自 “一个奋斗的小运维” 博客,请务必保留此出处http://yucanghai.blog.51cto.com/5260262/1705237

mongodb之查看状态的命令详解

标签:mongodb状态 命令详解

原文地址:http://yucanghai.blog.51cto.com/5260262/1705237

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!