打开 edX 并拆分 mongo 消耗磁盘 space
Open edX and split mongo consumes disk space
我正在使用使用 MongoDB 存储课程的 Open edX。我们是 运行 三节点副本集。它目前正在使用 split mongo - 一种在编辑之前制作当前文档(备份)副本的功能。随着时间的推移,它堆积起来,导致消耗大磁盘 space。目前大约有 30 门课程,当我导出它时,它占用大约 2-3 GB。但是,它实际使用的磁盘 space 是
我尝试使用 this script
清除不需要的课程
在主要成员中执行此操作后,需要一些时间并删除所有不需要的文档。但它不释放磁盘space。
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
}
root@mongo:~# 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 }
也没用。
谁能告诉我在这种情况下如何回收磁盘 space?我想尽可能快地在产品服务器中执行此操作。
您需要进行初始同步。一个次要的,最后降级你的主要的,也做一个初始同步。
因此,您停止辅助节点,然后从节点 dbPath 中删除所有文件。启动节点并让它进行初始同步。对所有节点重复此操作。
我正在使用使用 MongoDB 存储课程的 Open edX。我们是 运行 三节点副本集。它目前正在使用 split mongo - 一种在编辑之前制作当前文档(备份)副本的功能。随着时间的推移,它堆积起来,导致消耗大磁盘 space。目前大约有 30 门课程,当我导出它时,它占用大约 2-3 GB。但是,它实际使用的磁盘 space 是
我尝试使用 this script
清除不需要的课程在主要成员中执行此操作后,需要一些时间并删除所有不需要的文档。但它不释放磁盘space。
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
}
root@mongo:~# 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 }
也没用。
谁能告诉我在这种情况下如何回收磁盘 space?我想尽可能快地在产品服务器中执行此操作。
您需要进行初始同步。一个次要的,最后降级你的主要的,也做一个初始同步。
因此,您停止辅助节点,然后从节点 dbPath 中删除所有文件。启动节点并让它进行初始同步。对所有节点重复此操作。