2012-04-26 16 views
1

a dbstats call in MongoDBは、データベース上のデータベースの実際のサイズをfileSizeとして表示します。ただし、dbstatsは、it blocks the database server while it runs, and it can run for a long timeのため、本番環境での使用には適していません。 (同僚ごとに)安全だと言われているa collstats callがありますが、戻り値にはfileSizeメンバーがなく、storageSizeメンバーのみがあります。ここにはan explanation of dbstats().dataSize, fileSize, and storageSizeがあり、storageSizeとfileSizeが異なると主張しています。 docは曖昧ですが、私は経験の違いを確認していますdbstatsを使用せずにMongoDBデータベースのfileSizeを計算できますか?

> MB = Math.pow(2, 20) 
> db.stats(MB) 
{ 
    "db" : "somedb", 
    "collections" : 11, 
    "objects" : 68200, 
    "avgObjSize" : 1153.922991202346, 
    "dataSize" : 75, 
    "storageSize" : 117, 
    "numExtents" : 34, 
    "indexes" : 17, 
    "indexSize" : 8, 
    "fileSize" : 448, 
    "nsSizeMB" : 16, 
    "ok" : 1 
} 
> 

15分間サーバーをブロックせず、サーバーのAPIを使用して、ディスク上のMongoDBデータベースの本当の大きさを計算する方法はありますか?

更新:私は特にサーバーAPIを探しています。私の使用例では、dbブラウザであるMongsにディスク使用状況の統計情報を追加しています。これは直接ファイルシステムへのアクセスを想定できません。

+0

http://www.mongodb.org/display/DOCS/mongostatはお役に立ちますか? – sfat

+0

私はmongostatが私にディスク上のサイズを示しているのを見ていません。何か不足していますか? – whit537

答えて

0

これは予想されます。

保存サイズは、文書の内部で割り当てられた容量です。 MongoDBは実際のドキュメントサイズにパディングを自動的に追加して、ディスク上の移動を必要としないようにします。

FileSizeは、ホストOSのファイルシステム内のディスクに割り当てられた領域(事前割り当て領域を含む)です。データファイルは、DBごとに割り当てられ、64 MBから開始し、2 GBに達するまでサイズが2倍になります(その後の各データファイルのサイズは2 GBです)。データファイルの名前は、dbname.0、dbname.1の形式です...

ファイルサイズを見つけるには、すべてのデータに対してlinuxコマンド(ls -l、du -hなど)を使用します。値を合計するか、du -ch regexを使用して、すべての値の合計値を見つけることができます。

+0

こことmongodb-userにお返事ありがとうございます。しかし、私は特に「サーバAPIの使用」に興味があります。 – whit537

関連する問題