Disk-Space-Utilization

Mongodb 本地數據庫文件大小/數量爆炸式增長

  • March 28, 2012

我的分片有三個副本集,但我注意到每個副本集節點上的本地數據庫都生成了很多 local.* 數據文件。mongodb 儲存數據文件的磁碟大小約為 50G,但 local.* 數據文件佔用 22G。實際數據根本不需要 1 GB(目前)。我閱讀了Excessive Disk Space文章,其中指出 local-db 最多只能佔用 5% 的磁碟空間。

我仍然不知道是否應該設置--oplogSize-fallocate--noprealloc開關,以及它如何影響其他複製的數據庫。

# ll mongo -h
total 23G
-rw------- 1 mongod mongod  64M Mar 26 10:20 test.0
-rw------- 1 mongod mongod 128M Mar  1 14:03 test.1
-rw------- 1 mongod mongod  16M Mar 26 10:19 test.ns
-rw------- 1 mongod mongod  64M Mar 26 10:20 production.0
-rw------- 1 mongod mongod 128M Feb 29 18:28 production.1
-rw------- 1 mongod mongod  16M Mar 23 17:39 production.ns
drwxr-xr-x 2 mongod mongod 4.0K Feb 29 18:28 journal
-rw------- 1 mongod mongod  64M Feb 29 18:01 local.0
-rw------- 1 mongod mongod 128M Feb 29 18:00 local.1
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.10
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.11
-rw------- 1 mongod mongod 2.0G Mar 26 10:20 local.12
-rw------- 1 mongod mongod 2.0G Mar 26 10:20 local.2
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.3
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.4
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.5
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.6
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.7
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.8
-rw------- 1 mongod mongod 2.0G Feb 29 18:00 local.9
-rw------- 1 mongod mongod  16M Mar 26 10:19 local.ns
-rwxr-xr-x 1 mongod mongod    6 Feb 29 18:01 mongod.lock
drwxr-xr-x 2 mongod mongod 4.0K Mar  1 14:03 _tmp

我在 centos 6.2/64bit 上使用 mongodb 2.0.4。

更新:當我在本地數據庫中查詢 oplog.rs 集合時,我得到這個:

PRIMARY> db.oplog.rs.count();
130234

啊,我在df中查看了錯誤的行。/是 50G,但數據儲存在另一個安裝的捲中,我們有 1.8 T,所以 5% 規則現在有意義(意味著它仍然可以增長到 ~90G)。所以我將使用這個--oplogSize參數,因為這個大小對於我們的案例來說有點過分了。

(但是,似乎 –oplogSize 無法更改現有日誌的大小,我必須先檢查是否可以刪除這些文件)。

這是 MongoDB 中的正常行為。Mongo 伺服器在安裝後會立即保留一些磁碟空間。

引用自:https://serverfault.com/questions/373347