mongodb之查看状态的命令详解
常用的参看 mongodb 状态的三个命令db.stat() db.serverStatus() db.currentOp(),下面分别详细介绍一下1db.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
}
2db.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
}
需要关心的地方:
1connections当前连接和可用连接数,听过一个同行介绍过,mongodb最大处理到2000个连接就不行了(要根据你的机器性能和业务来设定),所以设大了没意义。设个合理值的话,到达这个值mongodb就拒绝新的连接请求,避免被太多的连接拖垮。
2indexCounters:btree:misses索引的不命中数,和hits的比例高就要考虑索引是否正确建立。
3db.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" : {
}
}
},
页:
[1]