说一下为了输出速度忽略缓存命中的一些感受
-
我在买7900xtx之后,用的是qwen3.8Q4非审查版本。这个版本用在DSH网页端,运行效果是很不错的,我也没觉得速度太慢。
在DSH桌面版出来之后,想尝鲜,安装了桌面版,导致桌面版和网页端数据互通,污染了网页端的128K上下文。
影响的效果是:网页端本身可以跑软件修改几十轮200多步,100+Mtok,一些小问题都可以修改。但是桌面版安装之后上下文经常超,说不了两句话就报错上下文不够了。而且用AI修,最多只有64K上下文,这个是DSH桌面版的限制,修不了的。
因为对话任务很多还需要,我没办法清空,所以一直忍着。在半个月前,OpenRouter上有了太空兔这个模型免费用,就用了一周。这期间看strata架构的速度不错,所以也测试了一下,但是内存占用太多,而且也没有非审核模型就没有使用,只做了测试能跑,但我觉得不适合我这种只有一台电脑的用户。
现在免费羊毛的太空兔没有了,回归本地模型,我就是感觉本地这个特别慢,我开始的时候以为是我用习惯了API,所以阈值变高了,导致现在看不上本地模型。但是这几天下来我总觉得不对。终于发现了问题,我看到我DSH里面的缓存命中只有30%+,但是我印象应该没有这么低,具体多少我看归档的对话发现之前都是90%+。所以这个时候我意识到慢的原因就在缓存命中上。
今天用了10块钱左右的DeepSeek专门重新搞strata和本地llama,最终得到的结果就是,strata的速度在我的机器上45t/s+(不到50),缓存命中50%,没有特别高。
删除strata退回到我之前刚安装llama+qwen3.8 27BQ4,缓存命中在95%+。效果明显了,速度也快了,就是能直接出结果了,不用一宿一宿的跑什么都跑不出来了。最终是缓存命中真的是太TMD重要了!!!
所有的性能都要在缓存命中高的前提下再搞速度。
贴几张我的图



前几张是慢的,最后一张是修改后在95%+的,效率一下就上来了。
AI告诉我的几个原因贴在这里,供大家参考。
为什么换模型后缓存命中率会暴跌?
在本地 llama.cpp 环境中,缓存机制比云端 API 更加“脆弱”,核心原因有两点:缓存域隔离:DSH 的设计是每个模型(甚至每个提供商)拥有独立的缓存域。当你从本地 Qwen 模型切换到 OpenRouter 的模型时,DSH 会认为你进入了一个全新的缓存域。当你再切回本地模型时,之前的缓存前缀已经作废,KV Cache 需要从头重建。
llama.cpp 的“全量重算”特性:llama.cpp 的 prompt cache 是基于最长公共前缀的精确匹配。一旦前缀中任何字节发生变化(例如系统提示词中注入了不同的模型名或提供商信息),整个对话历史都会被强制全量重算,而不是只重算变化的部分。在长会话中,这意味着一次模型切换可能触发数万甚至数十万 token 的重新处理,首轮响应会变得极慢,命中率显示也自然暴跌。
分步排查与恢复指南
你可以按照以下顺序逐步操作,通常能恢复到接近之前的命中率:第一步:确认是否用回了同一个“缓存域”
检查你的 DSH 配置,确认当前会话使用的本地模型路径、量化版本、上下文长度参数与之前完全一致。如果之前用的是 qwen3.8-q4-long,切回来时也必须用同一个标识符,而不是新建一个类似的。第二步:检查 resume 会话的副作用
如果你是恢复(resume) 了之前的旧会话,可能会触发 DSH 的一个已知 bug:在 cordis(创造)模式下,会话恢复时 system prompt 的 section 排序可能发生漂移,导致缓存命中率从 ~99% 暴跌到 0.3%~3%。解决方法:尝试新开一个会话,而不是 resume 旧会话,观察第一轮之后的命中率是否恢复正常。第三步:检查是否有“后台请求”在踢掉缓存
这是本地部署中最隐蔽的杀手。DSH 的子代理(subagent)会继承父会话创建时的模型,而不是当前模型。如果你在切换模型期间,某些后台任务或子代理仍然在向 llama.cpp 发送对其他模型的请求,llama.cpp 会驱逐(evict)已加载的本地模型,导致 prompt cache 丢失。请检查终端日志或 DSH 的 /logs,看是否有频繁的模型重新加载记录。第四步:用 dsh-model-pin 插件锁死本地模型(强烈推荐)
安装 dsh-model-pin 插件,强制所有请求(包括子代理和后台任务)只能使用你指定的本地模型。配置为单模型模式后,任何“越界”的请求都会被重定向或拒绝,彻底杜绝因意外模型切换导致的缓存丢失。bash
安装插件
dsh plugin --profile web add dsh-model-pin
在 ~/.dsh/profiles/web/cordis.patch.yml 中添加配置
- id: model-pin
config:
providers:
llamacpp:
allow: [qwen3.8-q4-long] # 只允许这一个模型
fallback: qwen3.8-q4-long
action: redirect
warnOnSwitch: true
最后还有一个我的结论,一台电脑不是服务器还是不适合strata,即使速度快,但是影响电脑自身性能很多,只适合服务器调用。
如果有人有新的方法,可以介绍给我,贴给我,万分感谢。
- id: model-pin
-
dsh 在之前0.15版本里面有一个非常严重的Pi ai bug....不懂怎么搞,他不会一直出来,然而之前我搞一个48小时不间断的1000亿Input output ,使用0.15反而没问题,我有特别留意缓存,他是不断不断用完了就马上压缩,再继续,没卡断,我以为可以一直用,
然而最近不懂怎么,卡在类似的缓存问题, 有时候我设定130k, 他用到150k 都还不要压缩,然后就Hang着等我。。。。
我现在升级0.2.0版本,类似的问题已经减少很多