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" : {
                                         
                                }
                       }
               },
时间: 2024-11-05 14:40:43

mongodb之查看状态的命令详解的相关文章

linux查看硬件的命令详解

1.查看linux服务器下的内存使用情况,可以使用命令free -m [[email protected] ~]# free -m              total       used       free     shared    buffers     cached Mem:           988        693        295          0         21        525 -/+ buffers/cache:        145       

linux sar 命令详解

linux sar命令详解 sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等. sar命令的格式: -bash-4.1# sar --help Usage: sar [ options ] [ <interval> [ <count> ] ] Options ar

linux 系统上的进程查看管理工具之htop/dstat/top/ps命令详解

     进程查看管理工具之ps/top/dstat/htop命令详解 一.ps命令详解: ps 加选项参数 ps a 显示与终端相关的内容信息,例如: [[email protected] cx]# ps a PID TTY      STAT   TIME COMMAND 2396 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3 2399 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4 2401 tty5

[转帖]linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令

linux screen 命令详解,xshell关掉窗口或者断开连接,查看断开前执行的命令 https://binwaer.com/post/12.html yun install -y screen screen -S zhaobsh ping www.163.com 关闭xshell 再次连接 screen -ls 根据 pid 使用 screen -r pid 再次打开连接. 一.背景 系统管理员经常需要SSH 或者telent 远程登录到linux 服务器,经常运行一些需要很长时间才能完

netstat怎样查看端口占用?netstat命令详解

netstat是使用比较频繁的端口查看命令,监控TCP/IP网络非常有用的工具.在使用VPS或云服务器上安装启动IIS.Apache或tomcat等网站环境软件时,常会遇到80端口被占用而无法启动错误,这时就可以利用netstat命令查看80端口占用情况. netstat命令详解: netstat命令一般格式为:netstat[-a][-e][-n][-o][-pProtocol][-r][-s][Interval] 详细参数介绍: -a 显示所有socket,包括正在监听的. -c 每隔1秒就

NoSQL之Redis高级实用命令详解--安全和主从复制

Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  数据库相关  >  NoSQL数据库 NoSQL之Redis高级实用命令详解--安全和主从复制 NoSQL Redis   2014-01-09 22:52:47 发布 您的评价:       0.0   收

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义

Linux上命令的使用格式和基础命令详解

一.Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [[email protected] ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式:此处的完整格式为:localhost.localdomain [[email protected] ~]# hostname localhost.localdomain ~:用户当前所在的目录(current directory),也称为工作目录(work

linux之cp/scp命令+scp命令详解

linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录. 把计 -a 尽可能将档案状态.权限等资料都照原状予以复制. -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地. -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制. 范例: 将档案 aa