【问题标题】:How could I know mongo data unused space我怎么知道mongo数据未使用空间
【发布时间】:2015-11-17 00:43:29
【问题描述】:

在 Mongo 中,存储大小是预先分配的,例如 db.stats() 输出如下,storageSize : 65536 未完全被 mongo 文档使用,但我怎么知道可用空间可用于预分配的 storageSize?

“127.0.0.1:27018”:{ “分贝”:“测试”, “收藏”:1, “对象”:10, “avgObjSize”:53.08618233618234, “数据大小”:530, “存储大小”:65536, “numExtents”:0, “索引”:1, “索引大小”:532, “好的”:1

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    如果我理解正确,答案应该等于 storageSize - dataSize?

    这个文档真的很有帮助:http://blog.mongolab.com/2014/01/how-big-is-your-mongodb/

    还有mongodb的db.stats()文档:https://docs.mongodb.org/manual/reference/command/dbStats/,在这里可以找到dbStats返回的每个值的含义

    【讨论】:

    • 如果Mongo存储引擎使用非压缩模型是正确的。如果使用wiredTiger mongo存储引擎,默认行为是压缩,即dataSize大于storageSize,这种场景如何解决?
    • 您的第一个问题实际上缺少一些信息。我猜你至少有 mongo 3.0 并配置了wiredTiger,因为你的 db.stats() 没有返回一些关于 mmapv1 引擎的信息。实际上,如果 dataSize 被引擎压缩了,你就会得到 db.stats() 返回的压缩值。你说dataSize大于storageSize,这不是真的。最终可能未压缩的 dataSize 可能大于您的 storageSize。但这不会发生在您的数据库中,因为您使用的是 WiredTiger 引擎,那么真正的问题是什么?
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2014-02-05
    • 2014-03-08
    • 1970-01-01
    • 2015-12-31
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多