首先,创建一个 marked 列表,标记 GC 时不能删除的块, 这些块包括
接下来,通过块存储组件,遍历本地所有块的 Cid,如果 Cid 不在 marked 列表中,则删除该 Cid 对应的块文件。
如配置所示, StorageMax 表明 ipfs 的最大存储空间, StorageGCWatermark 表明存储空间警戒线, GCPeriod 为检查是否 GC 的间隔时间。
当到达检查时间时,如果 已用存储空间 >StorageMax * StorageGCWatermark ,则会发生 GC。
注意: 定时 GC 默认不开启,需要额外参数开启,开启方式下面会介绍。
当主动使用 ipfs GC 命令时,不管当前 ipfs 的存储情况是怎样,会立即发生 GC。
使用 ipfs daemon 启动 ipfs,并不会自动启动 ipfs 的定时GC功能。
需要开启相应的参数, 即 ipfs daemon --enable-gc , 才会启动 ipfs 的定时GC功能。
ipfs 立即执行垃圾回收,不管已用存储空间是否到达 存储空间警戒线
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)