我将一个分片的maxsize
设置为20GB并每天保留删除数据。但我看到这个碎片的storageSize
中的一个分辨率大约为18G,但其磁盘上的数据文件大约为33GB,并且它不断增长。我知道mongo只是标记删除的数据,但它是否应该重用该空间?或者我需要配置一些东西?为什么mongodb不使用已删除的数据空间?
-2
A
回答
1
我不会在您的数据库上运行repair
,只要您想恢复空间;这会对一个人造成灾难性的性能问题。
您遇到的问题是文档不适合您已删除存储区列表中的空间(参考这是一个很好的演示文稿:http://www.mongodb.com/presentations/storage-engine-internals它将解释我所谈论的一切),并且由于MongoDB用完的“蒸汽”搜索您的列表之前,它使一个全新的文件,你很可能得到一个新的范围,你插入/更新每个文件。
您可以运行compact
,但在性能方面与repair
一样差,但它会将这些删除空间发送到可供任何大小文档使用的空闲列表。
你也可以使用powerof2sizes:http://docs.mongodb.org/manual/reference/command/collMod/#usePowerOf2Sizes来解决你的问题。
理想情况下,您需要重做您的应用程序,您低估了就地更新/插入到MongoDB的工作方式,现在它正在屠杀您。
+0
谢谢!!!!!! – bbgasj
相关问题
- 1. 为什么我不能在mongodb中删除数据库
- 2. 为什么AWK删除前导空间?
- 3. MongoDB是否重用已删除的空间?
- 4. 为什么Kafka不会删除数据?
- 5. 什么是已删除的函数,为什么只有我传递文件的函数被视为已删除?
- 6. 为什么whitespaceAndNewlineCharacterSet不会删除空格?
- 7. 为什么我不能删除空行?
- 8. 春数据删除的MongoDB使用MongoTemplate
- 9. 从MongoDB中删除空数据库
- 10. Mongodb字段不为空删除
- 11. 为什么我的cookie已被删除
- 12. MongoDB的数据删除 - 回收磁盘空间
- 13. Docker中为什么使用“数据空间”+“数据空间可用”!=“数据空间总量”?
- 14. 为什么添加元素删除元素之间的空间?
- 15. 为什么列表删除功能不会删除空格?
- 16. 为什么要删除数据元素?
- 17. 为什么使用数组的括号之间的值不可能删除?
- 18. 删除数据之间的空白行
- 19. 为什么不删除Cookie?
- 20. 当从mysql中删除数据时,它占用的空间会发生什么?
- 21. 删除不间断空间?
- 22. 使用strtok函数删除Tab空间
- 23. 为什么删除密钥空间数据并未通过磁盘的快照文件删除?
- 24. 为什么我无法删除字符串的空间?
- 25. ElementTree:为什么我的名称空间声明被删除?
- 26. 你怎么删除空间
- 27. 为什么mongoDB占用这么多RAM空间?
- 28. 为什么我无法使用此代码删除数据?
- 29. 如何删除空行内块空格下的空间(为什么它有吗?)
- 30. 为什么不在数据框中删除行为零?
你知道吗mongo为你预分配一些磁盘空间? –
http://stackoverflow.com/questions/4555938/auto-compact-the-deleted-space-in-mongodb/4560096#4560096 –