Skip to content

ContainerCacheGuard v0.2.0-rc.12

Pre-release
Pre-release

Choose a tag to compare

@cuipengdba cuipengdba released this 10 Nov 17:09

ContainerCacheGuard 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用于本次发布。未将失败轮计为通过,也未发布中间构建。