Repository navigation
ContainerCacheGuard v0.2.0-rc.12
Pre-releaseContainerCacheGuard 0.2.0-rc.12
2026-11-11。基于rc.11,保留静态amd64/arm64、无Web、详细中文日志、一天一文件/30天/1GB和保护输入缺失暂停。
- doctor增加--require-ready双样本严格部署预检与中文能力原因,区分PSI权限、无效内容、可见接口缺失和明确关闭启动参数。不修改内核、不关闭保护。
- 已等待重扫的文件索引跨时间片累计一轮最早唤醒时间,全量等待期间跳过反复索引遍历;新文件/已发现身份变化使缓存失效。新增发现历时、调度与跳过原因计数。
- 重复无即时净下降的区域按1/2/4/8倍冷却退避,三次后保留有界历史再等待;再次驻留和所有原保护仍优先。
- 新增report离线小时JSON/Markdown统计,无HTTP,不访问PGDATA或cgroup。区分观察、暂停、缺样、重启、回退、建议量、复查下降和重新驻留,拒绝不完整/超限日志及特殊文件。
- 增加四角色observe模板、详细参数、预检/持久挂载/输出端与源端验证说明。
使用与边界见rc.12手册。回归、微基准与发布附件核验见交付记录。程序回归不代表实际数据库压力验收,索引等待微基准不代表完整扫描/磁盘IO成本。没有启用94 PSI或替换运行实例,没有操作171;PG14真实业务48小时、YsP正式服务和ARM64 64KiB页验收仍未完成。
本次实际回归结果
源码提交:f9808175914466d5162cef77a803b89a5be5955c。已下载核对原生CI 42860228580原始日志与构建产物。
| 架构 | 原生race顶层单测 | CLI检查 | 网页检查 | 页大小 | 静态ELF |
|---|---|---|---|---|---|
| amd64 | 71通过,0跳过 | 32通过 | 已取消(不适用) | 4096 B | 无INTERP/DYNAMIC段 |
| arm64 | 71通过,0跳过 | 32通过 | 已取消(不适用) | 4096 B | 无INTERP/DYNAMIC段 |
产物直接取自本次原生CI,构建提交与源码标签一致,源码构建标记干净。附件含程序、SHA256、中文说明、LICENSE和机器可读测试JSON。本版本没有在171修改配置,也没有替换94运行实例;真实业务48小时和ARM64 64KiB页验收仍未完成。
最终核验补充
同PID重启通过daemon_started/daemon_stopped断开基线,已有实际守护进程日志CLI回归。缺少生命周期事件的旧日志仍有身份识别限制。每次report仅输入同一实例日志,不混合四容器;cgroup路径不能跨容器唯一识别。
等待索引微基准
以下每项50次,只比较全部等待时的索引遍历与已缓存唤醒分支。基线索引共享同一文件记录以减少额外缓存变量;不包含首次遍历、缓存失效、发现、mincore、实际磁盘IO、完整进程或业务。不能据此宣称整体性能提升相同比例。
| 架构 | 索引条目 | 遍历ns/op | 缓存等待ns/op | 两者B/op / allocs/op |
|---|---|---|---|---|
| amd64 | 1000 | 3860.0 | 16.82 | 0/0;0/0 |
| amd64 | 100000 | 315847.0 | 7.4 | 0/0;0/0 |
| amd64 | 1000000 | 3020919.0 | 11.22 | 0/0;0/0 |
| arm64 | 1000 | 2170.0 | 5.28 | 0/0;0/0 |
| arm64 | 100000 | 221264.0 | 7.84 | 0/0;0/0 |
| arm64 | 1000000 | 2232634.0 | 12.8 | 0/0;0/0 |
失败与重测记录
首轮CI 42858263700未通过:旧到期测试只修改NextScan,不能同时模拟新增唤醒缓存的时间流逝。已改为真实等待到期,并补充提示身份变化唤醒和超大冷却时间饱和测试。后续两轮通过后,最终复核又补充同PID生命周期事件断开基线的修正和回归;仅上表最终CI用于本次发布。未将失败轮计为通过,也未发布中间构建。