绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
compact检测机制:
2020-04-30 14:03:28

compact检测机制:
compact命令发出后,其实终是由存储引擎wiredTiger来完成,在执行期间,会不断将集合文件后面的数据往前面空闲的空间写,然后逐步truncate文件回收物理空间;每一轮compact前,WiredTiger都会做如下检查:
  • 前面80%的空间里,是否有20%的空闲空间,用于写入文件后面的20%的数据,或
  • 前面90%的空间里,是否有10%的空闲空间,用于写入文件后面的10%的数据;
如果上述两条一条都不满足,那么执行compact肯定无法回收10%的空闲空间,此时compact就会退出执行,所以有时候对一个大集合执行了compact后很快得到ok:1,且集合空间变化不大, 那么说明此集合可能没有收缩的余地,没有必要执行compact

预估可回收空间
可通过命令db.collname.stats().wiredTiger["block-manager"] 查看
rs1:PRIMARY> db.MsgResultDto.stats().wiredTiger["block-manager"]
{
    "allocations requiring file extension" : 0,
    "blocks allocated" : 8559169,
    "blocks freed" : 3750452,
    "checkpoint size" : 99337433088,
    "file allocation unit size" : 4096,
    "file bytes available for reuse" : 31563096064,    ---表示集合可被回收的空闲空间
    "file magic number" : 120897,
    "file major version number" : 1,
    "file size in bytes" : 130900664320,
    "minor version number" : 0
}


分享好友

分享这个小栈给你的朋友们,一起进步吧。

IT人士养老之道
创建时间:2019-03-13 15:28:19
作为IT成功人士,30年以后的你如何养老?如何养生?一起聊聊吧
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 小雨滴
    栈主

小栈成员

查看更多
  • 老七
  • 一号管理员
  • qingduyu
  • Bsolar
戳我,来吐槽~