Face Analysis WebUI Cache 目录清理与磁盘空间管理策略
1. 为什么你得关心 cache 目录?
在部署基于 InsightFace 的智能人脸分析系统后,常遇到 cache 目录无限制增长的问题。例如 /root/build/cache/ 目录可能从几 MB 涨至 12GB,导致磁盘空间告急,甚至引发 OSError: No space left on device 错误,使服务卡住或模型加载超时。
本文专注于解决 cache 目录的健康管理问题,涵盖以下内容:
- cache 目录中存储的内容解析(区分模型文件与分析缓存)
- 三种可落地的清理方式:手动、定时、按需
- 轻量级自动管理脚本实现
- 安全阈值设置与主动预警机制
2. 先搞清楚:cache 目录里装的到底是什么?
该目录包含两种不同性质的数据,需区别对待。
2.1 模型缓存(safe to keep)
路径示例:/root/build/cache/insightface/models/buffalo_l/
这是 InsightFace 首次加载模型时自动下载的权重文件,包括:
det_10g.onnx(人脸检测模型)w600k_r50.onnx(特征提取模型)genderage.onnx(性别年龄联合模型)landmark_106.onnx(106 点关键点模型)
这部分绝对不要删除。删除后下次启动会重新下载和校验,通常占用 300–500MB,属于稳定不变的良性缓存。
2.2 分析中间缓存(dangerous to keep)
路径示例:/root/build/cache/insightface/temp/20260119_143522501/
这是处理图片时生成的临时中间文件,包括:
- 原图缩放后的预处理版本(
.jpg) - 人脸裁剪图(
.png) - 关键点热力图(
.npy) - 姿态角度计算缓存(
.pkl)
这些文件默认保留所有历史记录,不会自动删除。若每天上传大量图片,一周即可突破 10GB。文件名多为时间戳,人工难以判断清理范围。
总结:模型缓存是必需品,分析缓存是消耗品。前者保护,后者定期清理。
3. 三种实用清理方式,按需选择
3.1 手动清理:适合调试阶段或单次维护
快速腾出空间的命令如下:
# 删除所有 24 小时之前的 temp 目录(保留最新一天)
find /root/build/cache/insightface/temp/ -maxdepth 1 -type d -mtime +1 -name "20*" -exec rm -rf {} \;
# 查看清理效果
du -sh /root/build/cache/insightface/temp/
说明:
-maxdepth 1:只查一级子目录,避免误删深层模型文件-mtime +1:修改时间超过 1 天的目录

