2011-05-30 95 views

回答

30

用途:

db.stats() 

輸出應該是這樣的:

{ 
    "collections" : 3, 
    "objects" : 80614, 
    "dataSize" : 21069700, 
    "storageSize" : 39845376, 
    "numExtents" : 9, 
    "indexes" : 2, 
    "indexSize" : 6012928, 
    "ok" : 1 
} 

查看更多診斷命令here

+3

什麼類型是數據大小和存儲數量? – Waltari 2016-10-17 06:40:09

+2

dataSize和storageSize以字節爲單位。請參閱 - [調整大小和修剪](https://www.compose.com/articles/sizing-and-trimming-your-mongodb/) – CaptainBli 2017-04-28 17:53:40

4

使用db.getStats()在Java中

CommandResult re = db.getStats(); 
for(String k: re.keySet()){ 
    System.out.println(k+"="+re.get(k)); 
} 

然後會得到結果如下圖所示:

serverUsed=127.0.0.1:27017 
db=test 
collections=3 
objects=100004 
avgObjSize=67.99876004959802 
dataSize=6800148 
storageSize=10633216 
numExtents=9 
indexes=1 
indexSize=4406864 
fileSize=50331648 
nsSizeMB=16 
ok=1.0 
4

dbStats命令將返回不同的存儲對於給定的數據庫統計信息。 正如this post所述,您應該監控不同的MongoDB性能指標(使用MMAPv1),您提到的dataSize指標衡量數據庫中所有文檔和填充佔用的空間。 要獲得磁盤上數據庫的「存儲空間」,您應該查看與數據文件大小相對應的fileSize度量標準。它僅在您刪除數據庫時減少,並且在集合,文檔或索引被刪除時不會受到影響。

這裏是與由dbStats返回的不同重要的存儲度量的圖: enter image description here

還要注意的是,與MMAPv1存儲引擎,所映射的存儲器(mem.mapped度量),對應於虛擬存儲器的使用量將數據庫映射到內存中,可以很好地近似數據庫的總大小。您可以通過serverStatus command訪問此度量標準。