Azure IoT Edge edgehub目录下MANIFEST文件体积持续增大如何解决
关于edgehub MANIFEST-000004文件的常见问题解答
1. MANIFEST文件是什么
你看到的MANIFEST-xxxxxx文件是edgehub底层依赖的LevelDB持久化存储引擎的元数据文件:
LevelDB是谷歌开源的轻量级KV存储,edgehub 1.0.10.4版本默认用它存储设备影子、路由规则、消息缓存等持久化数据。
MANIFEST文件会记录LevelDB的全量元数据,包括SSTable文件列表、压缩(compaction)操作记录、键范围分布等信息,所有元数据变更都会以追加写入的方式更新到MANIFEST文件,所以随着edgehub运行时间变长,该文件体积会持续增长。你使用的1.0.10.4版本默认MANIFEST滚动阈值设置较大,会出现单文件长期持续增长的现象。
2. 缩小MANIFEST文件体积的可行方法
- 直接重启edgehub服务:LevelDB在进程重启时会自动生成新的MANIFEST文件,仅保留当前最新的元数据快照,旧MANIFEST文件会被自动清理,正常重启后MANIFEST文件体积会回落至几十KB到几MB级别,是最低成本的处理方案。
- 调整配置实现自动滚动:修改edgehub配置文件中的LevelDB参数,将
max_manifest_file_size设置为更小的阈值,比如设置为10485760(即10MB),后续MANIFEST文件大小达到阈值后,LevelDB会自动生成新的MANIFEST并清理旧文件,修改配置后需要重启一次edgehub生效。 - 禁止操作:不要直接手动删除运行状态下的MANIFEST文件,会导致LevelDB元数据损坏,edgehub持久化数据丢失,服务无法正常启动。
内容的提问来源于stack exchange,提问作者morice
相关产品推荐
相关产品推荐

