我正在使用Open edX,它使用MongoDB来存储课程。我们正在运行三节点副本集。它目前正在使用分割mongo - 在编辑之前制作当前文档副本(备份)的功能。随着时间的推移,这种堆积,导致消耗大的磁盘空间。目前大约有30门课程,当我输出时,它大约消耗2-3 GB。但是,实际使用的磁盘空间打开edX和拆分mongo消耗磁盘空间
我尝试使用this script
一旦在主成员执行该清理不必要的课程,它需要一些时间,并删除所有不必要的文件。但它不释放磁盘空间。
rs0:SECONDARY> db.stats()
{
"db" : "edxapp",
"collections" : 5,
"objects" : 277557,
"avgObjSize" : 112645.21484235671,
"dataSize" : 31265467896,
"storageSize" : 57843929088,
"numExtents" : 0,
"indexes" : 6,
"indexSize" : 6938624,
"ok" : 1
}
[email protected]:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 4082828 12 4082816 1% /dev
tmpfs 817564 396 817168 1% /run
/dev/xvda1 8115168 1805528 5874364 24%/
none 4 0 4 0% /sys/fs/cgroup
none 5120 0 5120 0% /run/lock
none 4087804 0 4087804 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/xvdf 62904320 57542660 5361660 92% /edx
/dev/xvdh 72117576 53012 68378164 1% /tmp/repairdb
我尝试使用
rs0:SECONDARY> db.runCommand({ compact : 'modulestore.structures', force: 'true' })
{ "ok" : 1 }
它并没有帮助来压缩数据库。
有人请让我知道如何在这种情况下回收磁盘空间?我想尽可能快地在prod服务器上执行此操作。
阅读Mojo回答:https://stackoverflow.com/questions/5518581/mongodb-data-remove-reclaim-diskspace – Hackerman