1. dbStats命令

    dbStats命令可以返回指定数据库的存储信息,默认是以bytes为单位显示存储信息,可以增加一个scale参数,如scale : 1024表示kilobytes显示。返回信息的时间由指定数据库的大小决定。

> db.runCommand({dbStats : 1,scale : 1})
{
	"db" : "test",
	"collections" : 28,
	"objects" : 161,
	"avgObjSize" : 61.391304347826086,
	"dataSize" : 9884,
	"storageSize" : 245760,
	"numExtents" : 29,
	"indexes" : 67,
	"indexSize" : 547792,
	"fileSize" : 201326592,
	"nsSizeMB" : 16,
	"dataFileVersion" : {
		"major" : 4,
		"minor" : 5
	},
	"ok" : 1
}
> db.runCommand({dbStats : 1,scale : 1024})
{
	"db" : "test",
	"collections" : 28,
	"objects" : 161,
	"avgObjSize" : 61.391304347826086,
	"dataSize" : 9,
	"storageSize" : 240,
	"numExtents" : 29,
	"indexes" : 67,
	"indexSize" : 534,
	"fileSize" : 196608,
	"nsSizeMB" : 16,
	"dataFileVersion" : {
		"major" : 4,
		"minor" : 5
	},
	"ok" : 1
}

   也可以使用db.stats()或者db.stats(1024)

> db.stats(1024)
{
	"db" : "test",
	"collections" : 28,
	"objects" : 161,
	"avgObjSize" : 61.391304347826086,
	"dataSize" : 9,
	"storageSize" : 240,
	"numExtents" : 29,
	"indexes" : 67,
	"indexSize" : 534,
	"fileSize" : 196608,
	"nsSizeMB" : 16,
	"dataFileVersion" : {
		"major" : 4,
		"minor" : 5
	},
	"ok" : 1
}

   db  当前数据库的名称,如果要查看指定数据库的存储信息,可以使用use test

   collections     当前数据库中包含的集合数量

   objects         数据库中所有集合包含的对象(例如文档)数量

   avgObjSize      每个文档的平均大小,用byte表示,这个值等于dataSize除以objects

   dataSzie        当前数据库持有的数据大小,包括padding factor, scale会影响这个值,当文档的大小缩小时,dataSzie不会减小,但是如果删除文档,dataSize的值会减小

   storageSize     分配给该数据库用于存储所有集合的文档的存储空间大小,以bytes计算,scale会影响这个值,当删除或缩小文档时,storageSize的值不会减小

   numExtents      数据库中所有集合包含的extent数量

   indexes         数据库中所有集合包含的索引数量

   indexSize       在这个数据库上创建的所有索引的大小,以bytes表示,scale会影响这个值

   fileSize        数据库的数据文件的大小,以bytes表示,这个值包括预分配空间和padding factor,这个值只能反映数据文件的大小,不能反映域名空间的大小,sacle的值会影响这个值

   nsSizeMB        以.ns结尾的文件的大小,默认情况下是16MB,可以在配置文件设置nssize的值,或启动mongod进程时,增加--nssize 参数。

   dataFileVersion  数据库相关的数据文件的磁盘格式信息


2.collStats命令

  collStats命令或者db.collection.Stats()可以查看单个集合的存储信息,collection是指定的集合,如player集合就可以写成db.player.Stats(),scale用来指定显示的数据单位

> use zhanguo_server_jd01;
switched to db zhanguo_server_jd01
jidong:PRIMARY> db.runCommand({collStats : 'player',scale : 1024})
{
	"ns" : "zhanguo_server_jd01.player",    
	"count" : 93263,                        
	"size" : 94040,
	"avgObjSize" : 1.008331278213225,
	"storageSize" : 106988,
	"numExtents" : 8,
	"nindexes" : 4,
	"lastExtentSize" : 37796,
	"paddingFactor" : 1.000000000001303,
	"systemFlags" : 1,
	"userFlags" : 0,
	"totalIndexSize" : 20607,
	"indexSizes" : {
		"_id_" : 3113,
		"uid_1" : 8543,
		"user_name_1" : 4032,
		"email_1" : 4918
	},
	"ok" : 1
}
jidong:PRIMARY> db.player.stats(1024)
{
	"ns" : "zhanguo_server_jd01.player",
	"count" : 93263,
	"size" : 94040,
	"avgObjSize" : 1.008331278213225,
	"storageSize" : 106988,
	"numExtents" : 8,
	"nindexes" : 4,
	"lastExtentSize" : 37796,
	"paddingFactor" : 1.000000000001303,
	"systemFlags" : 1,
	"userFlags" : 0,
	"totalIndexSize" : 20607,
	"indexSizes" : {
		"_id_" : 3113,
		"uid_1" : 8543,
		"user_name_1" : 4032,
		"email_1" : 4918
	},
	"ok" : 1
}


   ns            域名空间,由数据库名和集合名构成

   count         集合中包含的文档数量

   size          集合中所有记录的总大小,这里的值不包括record head,每个record head是16个字节,但是不包括record's padding.也不包括所有索引的大小,索引的大小由totalIndexSize的值决定,scale也会影响这个值

   avgObjSize    集合中一个对象的平均大小。scale的值会影响这个值

   storageSize   分配给集合存储所有文档的存储空间,scale的值会影响这个值,移除或缩小文档,存储空间不会减小

   numExtents    The total number of contiguously allocated data file regions.

     nindexes            这个集合的索引数量,所有集合至少在_id字段有个索引

     lastExtentSize    最后一个extent分配的大小,scale会影响这个值

     paddingFactor    在插入时间时,在每个文档末尾增加的总空间大小,通过为每个文档在磁盘上分配额外的空间,可以使用每个文档小幅增长时不需要移动文档。

   systemFlags    通常值为1

   userFlags      

   totalIndexSize   索引的总大小,scale会影响这个值

   indexSizes     分开显示每个索引的大小,scale会影响这个值


3.replSetGetStatus 命令

  使用replSetGetStatus命令可以反映复制集的状态,使用这个命令需要在admin数据库下使用。

  同时在mongo终端下使用rs.status()也可以显示相同的信息

  

  

  set                   复制集的名称

  date                  当前时间,可以和lastHeartbeat的值对比当前主机和复制集中的其他主机的操作延迟时间

  myState               当前主机在复制集中的编号

  members               集合每个成员的信息

             name       成员名称,主机名(IP)+端口

             self       当前mongod实例才会有这个字段

             health     是否健康

             stateStr   在复制集中的状态,是PRIMARY,SECONDARY还是ARBITER

             uptime     在线时间,以秒为单位

             optime     Information regarding the last operation from the operation log that this member has applied.

                       optimeDate          An ISODate formatted date string that reflects the last entry from   the oplog that this member applied. 

                       lastHeartbeat        The lastHeartbeat value provides an ISODate formatted date and time of the transmission time of last heartbeat received from this member. 

             lastHeartbeatRecv  The lastHeartbeat value provides an ISODate formatted date and time that the last heartbeat was received from this member.

             pingMs     以毫秒表示当前实例到远程实例的发送往返包的时间

             syncingTo  指定要同步的mongod,即Primary

             


jidong:SECONDARY> use admin
switched to db admin
jidong:SECONDARY> db.runCommand({replSetGetStatus : 1})
{
	"set" : "jidong",
	"date" : ISODate("2014-10-20T01:36:46Z"),
	"myState" : 2,
	"syncingTo" : "zg-jidong-mgbackup:28018",
	"members" : [
		{
			"_id" : 0,
			"name" : "zg-jidong-mongodb:28018",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 5764907,
			"optime" : Timestamp(1413769005, 19),
			"optimeDate" : ISODate("2014-10-20T01:36:45Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "zg-mongodb-arbiter:28018",
			"health" : 1,
			"state" : 7,
			"stateStr" : "ARBITER",
			"uptime" : 5764874,
			"lastHeartbeat" : ISODate("2014-10-20T01:36:45Z"),
			"lastHeartbeatRecv" : ISODate("2014-10-20T01:36:46Z"),
			"pingMs" : 0
		},
		{
			"_id" : 2,
			"name" : "zg-jidong-mgbackup:28018",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 5764874,
			"optime" : Timestamp(1413769005, 10),
			"optimeDate" : ISODate("2014-10-20T01:36:45Z"),
			"lastHeartbeat" : ISODate("2014-10-20T01:36:46Z"),
			"lastHeartbeatRecv" : ISODate("2014-10-20T01:36:45Z"),
			"pingMs" : 0
		}
	],
	"ok" : 1
}