Linux

Mongodb副本集:為什麼我的主伺服器佔用的磁碟空間比我的從伺服器多?

  • June 23, 2015

我的副本集上有兩台伺服器。出於本次討論的目的,我們稱其為主機和從機。

master 是原來的那個,slave 是從那個 master 複製而來的。在複製的那一刻,它們佔用了大約相同的磁碟空間。

一個月後,這是目前的狀態。

掌握:

user@ines:/var/lib/mongodb$ ls -al
total 44265576
drwxr-xr-x  4 mongodb mongodb       4096 Apr 22 14:40 .
drwxr-xr-x 38 root    root          4096 Jan 28 12:08 ..
-rw-------  1 mongodb mongodb   67108864 Mar 31 15:23 admin.0
-rw-------  1 mongodb mongodb  134217728 Nov 29 12:33 admin.1
-rw-------  1 mongodb mongodb   16777216 Mar 31 15:23 admin.ns
drwxr-xr-x  2 mongodb mongodb       4096 Apr 24 08:35 journal
-rw-------  1 mongodb mongodb   67108864 Apr 17 10:33 local.0
-rw-------  1 mongodb mongodb 2146435072 Mar 31 11:21 local.1
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 local.2
-rw-------  1 mongodb mongodb   16777216 Apr 24 11:02 local.ns
-rwxr-xr-x  1 mongodb mongodb          5 Apr 17 10:32 mongod.lock
drwxr-xr-x  2 mongodb nogroup       4096 Apr 22 14:40 _tmp
-rw-------  1 mongodb mongodb   67108864 Apr 24 10:39 tracking.0
-rw-------  1 mongodb mongodb  134217728 Apr 16 14:50 tracking.1
-rw-------  1 mongodb mongodb 2146435072 Apr 24 02:26 tracking.10
-rw-------  1 mongodb mongodb 2146435072 Apr 21 04:38 tracking.11
-rw-------  1 mongodb mongodb 2146435072 Apr 11 05:30 tracking.12
-rw-------  1 mongodb mongodb 2146435072 Apr  8 13:25 tracking.13
-rw-------  1 mongodb mongodb 2146435072 Apr 17 15:17 tracking.14
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.15
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.16
-rw-------  1 mongodb mongodb 2146435072 Apr 14 19:00 tracking.17
-rw-------  1 mongodb mongodb 2146435072 Apr 24 02:26 tracking.18
-rw-------  1 mongodb mongodb 2146435072 Apr 22 12:33 tracking.19
-rw-------  1 mongodb mongodb  268435456 Apr 16 14:50 tracking.2
-rw-------  1 mongodb nogroup 2146435072 Apr 24 11:00 tracking.20
-rw-------  1 mongodb nogroup 2146435072 Apr 24 11:01 tracking.21
-rw-------  1 mongodb nogroup 2146435072 Apr 22 14:40 tracking.22
-rw-------  1 mongodb mongodb  536870912 Apr 16 14:50 tracking.3
-rw-------  1 mongodb mongodb 1073741824 Apr 24 11:02 tracking.4
-rw-------  1 mongodb mongodb 2146435072 Apr 24 10:50 tracking.5
-rw-------  1 mongodb mongodb 2146435072 Apr 21 20:26 tracking.6
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.7
-rw-------  1 mongodb mongodb 2146435072 Apr 16 16:17 tracking.8
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.9
-rw-------  1 mongodb mongodb   16777216 Apr 24 11:02 tracking.ns

還有奴隸:

user@juliana:/var/lib/mongodb$ ls -al
total 31688800
drwxr-xr-x  4 mongodb mongodb       4096 Apr 23 17:40 .
drwxr-xr-x 37 root    root          4096 Mar 31 16:04 ..
-rw-------  1 mongodb mongodb   67108864 Mar 31 15:28 admin.0
-rw-------  1 mongodb mongodb  134217728 Mar 31 15:28 admin.1
-rw-------  1 mongodb mongodb   16777216 Mar 31 15:28 admin.ns
drwxr-xr-x  2 mongodb mongodb       4096 Apr 24 10:04 journal
-rw-------  1 mongodb mongodb   67108864 Apr 17 14:19 local.0
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 local.1
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 local.2
-rw-------  1 mongodb mongodb   16777216 Apr 24 11:02 local.ns
-rwxr-xr-x  1 mongodb mongodb          5 Apr 17 14:19 mongod.lock
drwxr-xr-x  2 mongodb nogroup       4096 Apr 23 17:40 _tmp
-rw-------  1 mongodb mongodb   67108864 Apr 17 14:43 tracking.0
-rw-------  1 mongodb mongodb  134217728 Mar 31 15:30 tracking.1
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.10
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.11
-rw-------  1 mongodb mongodb 2146435072 Apr 24 02:26 tracking.12
-rw-------  1 mongodb nogroup 2146435072 Apr 24 11:02 tracking.13
-rw-------  1 mongodb nogroup 2146435072 Apr 24 05:40 tracking.14
-rw-------  1 mongodb nogroup 2146435072 Apr 24 11:02 tracking.15
-rw-------  1 mongodb nogroup 2146435072 Apr 23 17:40 tracking.16
-rw-------  1 mongodb mongodb  268435456 Mar 31 15:30 tracking.2
-rw-------  1 mongodb mongodb  536870912 Mar 31 15:30 tracking.3
-rw-------  1 mongodb mongodb 1073741824 Apr 24 10:39 tracking.4
-rw-------  1 mongodb mongodb 2146435072 Apr 15 17:18 tracking.5
-rw-------  1 mongodb mongodb 2146435072 Apr 21 03:56 tracking.6
-rw-------  1 mongodb mongodb 2146435072 Apr 24 10:55 tracking.7
-rw-------  1 mongodb mongodb 2146435072 Apr 21 20:26 tracking.8
-rw-------  1 mongodb mongodb 2146435072 Apr 24 11:02 tracking.9
-rw-------  1 mongodb mongodb   16777216 Apr 24 11:02 tracking.ns

這是正常的嗎?我怎樣才能回收“主人”正在浪費的空間?

謝謝你。

您應該查看該repairDatabase命令。

它阻塞了 mongod 不會提供流量

,所以在主/主節點上發出它之前,發出一個stepDown,另一個/輔助/從節點將接管流量。

原因:

無填充分配策略

在 3.0.0 版中更改。

對於工作負載不會更改文件大小的集合,例如由僅插入操作或不增加文件大小的更新操作(例如遞增計數器)組成的工作負載,您可以使用 collMod 命令禁用 2 分配的冪帶有 noPadding 標誌或帶有 noPadding 選項的 db.createCollection() 方法。

在 3.0.0 版本之前,MongoDB 使用一種分配策略,其中包括動態計算的填充作為文件大小的一個因素。

引用自:https://dba.stackexchange.com/questions/64041