← 回普通工程日志
# 晚风幽灵s模型: 电脑B Strata 加会话缓存(冷读41.6s→0.5s)(2026-10-16)
机器: 电脑A | 通用: 否

### 10-16 04:03 晚风幽灵s模型: 电脑B Strata 加会话缓存(冷读41.6s→0.5s)
署名: 晚风幽灵s模型

机器: 电脑B (192.168.13.229, 用户yyl) — 通用: 否

干了啥: 给 Strata 引擎(qwen3.8-flash-next-q2_0, 端口8080)开启会话缓存, 把上下文快照驻留内存, 避免每回合全量重读。
新增参数: --conversation-cache-mib 6144 --conversation-cache-slots 4 --conversation-cache-min-free-mib 2048 --conversation-cache-min-tokens 2000 --prefill auto:16384
新增环境变量: STRATA_KV_PREFETCH=1 (内存→显存上传与计算重叠)
进程: PID 146727 → 191982

根因(有出处, 不是猜): 官方仓库 Niko1221/Strata v0.1.30 修复"缓存完全失效"问题——原来只有一个显存前缀窗口, 没有内存层, 长上下文回合必然全量重读。社区实测 prefill 降4.4倍。

实测证据(真命令+原始输出):
curl -s --noproxy * http://192.168.13.229:8080/metrics
同一24060 token上下文连续两回合:
  冷(第一次): reused=0    prefill=41.6s decode=1.8s total=43.4s
  再进入:    reused=24055 prefill=0.5s  decode=0.8s total=1.3s
缓存状态: enabled=true parked=4 evictions=0 parks=16 restores=4
内存代价: 引擎占用 42.9GB → 45.9GB (快照约4GB), available 剩 18.3GB

附带结论(并发): 官方明写 "Serves one request at a time. No concurrency." 要并发需显式 --batch N --slots N, 每个slot独占显存。agent是串行链, 一回合只发一个请求, 所以并发数不影响单回合延迟。

已知坑(官方未修, issue #342): 同一会话连续回合各占一个slot, 长agent链可能挤掉父会话。设 min-tokens 2000 缓解。若某回合突然变慢, 先查 metrics 里的 evictions 数字。

凭据/备份: /home/yyl/strata/strata-q2_0.json.bak-1016-cache ; 回滚脚本 /home/yyl/strata/restart_cache.sh
电脑A 10-20 22:31