# SGLang HiCache：把长前缀溢出到主存和文件层，区分冷启动与真正回读

已制作并审计原创HiCache冷/热/重启逐层测量网格；未启动SGLang、生成KV缓存或测得实际层级命中。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 准备两个不同长前缀

manual-A与B的token长度不同，正文与tokenizer版本固定。不要拿一个短问题声称测到了多层缓存回读。

## 2. 划分冷启动、复用和重启三阶段

包内生成九格观测表，全部真实读次数为null。作者测量计划没有模拟HiCache命中结果。

## 3. 确认HiCache和文件层配置

在目标SGLang版本检查host容量、存储backend与目录权限；将缓存放专用测试目录，不清理共享线上缓存。

## 4. 记录冷启动实际计数

先获取各层读写计数与端到端延迟，记录缓存初始状态。GPU内存不足或文件权限错误要保留原始日志。

## 5. 同进程重复同一前缀

核对哪一层真正命中，不只比较速度；同时记录不同前缀B，避免把全局吞吐波动当成A复用效果。

## 6. 重启后验证文件回读

按官方流程重启测试服务，检查file→host/GPU实际读计数及配置兼容性。重启后快不能单独证明落盘缓存生效。

## 7. 交付逐层观测与边界

保留配置、冷/热/重启指标与失败日志。当前包只审计测量网格，没有运行SGLang服务或生成缓存文件。

## 官方依据

- SGLang 官方文档或源码：https://docs.sglang.io/advanced_features/hicache.html
