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
}