
mongodb 磁盘空间什么时候释放
1个回答
展开全部
mongodb自己是不会释放空间的。你需要根据实际情况考虑策略。
mongodb之所以占用空间非常大,一是因为日志非常庞大,一是为了保证连续的存储空间本身会提前申请很大的空间。你可以根据需求选择禁用日志,或者一定时间日志轮询,对使用的空间定时压缩等。
存储空间占用不断增大
数据库中被删除数据的空间不会自动被释放,需要通过repair或compact操作回收。repair操作针对整个数据库,需要停机,否则可能造成数据丢失,compact操作针对单个collection压缩。
在启动数据库时可以选择noprealloc参数,禁止数据库预分配空间,但会影响到插入效率。也可以设置每次预分配空间的大小,这样可以一定程度减小mongodb对空间的占用,当数据量增大后效果会变的不明显。
journal文件很大
journal文件夹下有几个文件不会自动删除,会不断变大。在未进行操作时journal文件也会占用4G空间。启动时可以通过nojournal参数禁用某些节点的journal功能。考虑使用日志轮询来处理journal文件占用空间过大问题。
以前使用的时候做的笔记摘抄了一点,时间有些久远,你可以顺着我提供的两个函数,主要是compact,可以不关机压缩,还不错,还有对日志轮询,从这两个角度考虑解决
mongodb之所以占用空间非常大,一是因为日志非常庞大,一是为了保证连续的存储空间本身会提前申请很大的空间。你可以根据需求选择禁用日志,或者一定时间日志轮询,对使用的空间定时压缩等。
存储空间占用不断增大
数据库中被删除数据的空间不会自动被释放,需要通过repair或compact操作回收。repair操作针对整个数据库,需要停机,否则可能造成数据丢失,compact操作针对单个collection压缩。
在启动数据库时可以选择noprealloc参数,禁止数据库预分配空间,但会影响到插入效率。也可以设置每次预分配空间的大小,这样可以一定程度减小mongodb对空间的占用,当数据量增大后效果会变的不明显。
journal文件很大
journal文件夹下有几个文件不会自动删除,会不断变大。在未进行操作时journal文件也会占用4G空间。启动时可以通过nojournal参数禁用某些节点的journal功能。考虑使用日志轮询来处理journal文件占用空间过大问题。
以前使用的时候做的笔记摘抄了一点,时间有些久远,你可以顺着我提供的两个函数,主要是compact,可以不关机压缩,还不错,还有对日志轮询,从这两个角度考虑解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询