You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB 4.4 WiredTiger 如何获取存储碎片统计信息

MongoDB 4.4 WiredTiger 存储碎片统计获取方法

你可以通过以下内置命令直接获取碎片相关的统计数据:

  • 库级别的碎片统计
    执行db.stats(1048576)即可查看当前数据库的存储相关指标,命令参数1048576代表返回值单位为MB,可根据需求调整。重点关注三个核心指标:
    • fileSize:数据库文件在磁盘上的总占用大小,包含预分配空间和删除操作预留的未释放空间
    • dataSize:库内所有文档实际承载数据的总大小,不包含索引、预留空间的占用
    • storageSize:数据库实际分配给文档存储的磁盘空间,删除文档/索引后这部分空间不会立刻归还操作系统,会被MongoDB留作后续写入复用,storageSize和dataSize的差值就是当前库级别的文档存储碎片总大小
  • 集合级别的碎片统计
    执行db.<你的集合名>.stats(1048576)可以查看单个集合的精细化碎片指标,除了上述通用指标外,还可以查看WiredTiger引擎专属的统计项:
    • wiredTiger.btree下的页相关指标:页利用率过低、溢出页占比过高都说明集合的B树存储结构碎片化严重
    • wiredTiger.block-manager下的块分配相关指标:可以查看磁盘块的实际使用占比,体现文件层面的碎片化程度
  • 碎片率快速计算
    你可以通过以下公式快速估算当前的存储碎片率:
    碎片率 = (storageSize - dataSize) / storageSize * 100%
    一般碎片率超过30%就可以考虑执行compact操作回收空闲空间。

注意:以上统计逻辑仅适配WiredTiger存储引擎,compact操作执行时会对目标集合加排他写锁,建议在业务低峰期执行;如果是副本集架构,建议先在所有从节点执行compact,最后再操作主节点。

内容的提问来源于stack exchange,提问作者Sameer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:54:01