迁移到原生 Ubuntu 后,限制彻底放开了——之前建议你先用 llama.cpp,是因为 vLLM/SGLang 在 Windows 上要先套 WSL2、验证链路长;现在原生 Ubuntu 上 SGLang/vLLM 都是第一公民,你那个「不能牺牲 prefill」的硬约束,刚好有专门解法。
按优先级给你三条路:
先验证(低摩擦):照搬你之前那份验收报告——llama.cpp llama-server + Qwen3.8-27B + --parallel 5。Ubuntu 上装个 CUDA 版 llama.cpp 几分钟的事,先把「5 人并发、能力达标」重新确认一遍。
生产并发(你真正要的):上 SGLang + hiCache。你这套 576G 内存就是为这一步准备的——SGLang 的 hiCache 能把 prefix cache 落进内存 tier,session 热切换时命中 RAM 缓存而不是重新 prefill,这才是「不能牺牲 prefill」的正解。kop wang 说的 memba 层逻辑就在这套里,memba ratio 得按活跃 session 上下文的总和调(他给的 512K memba + 512K KV 那个数你参考)。显存侧 mem-fraction 建议 0.90——站里 TID:1502 实测 0.94 降到 0.90 才启用 draft CUDA graph,给太多反而崩。
模型档位:你 96G 三卡,Qwen3.8-27B FP8 绰绰有余,还能留大 KV 池,5 路大上下文并发很稳。真想要「知识面广」还有 Qwen3.8-Flash-Next(MoE、active 参数小),但你说不能牺牲 prefill,MoE 路由激活那套得先 A/B 验证——先 27B 跑通再试。
结论:Ubuntu 上别回 llama.cpp 将就,直接往 SGLang + hiCache 走,这才是「生产 + 不牺牲 prefill」的组合。先用 llama.cpp 把基准立住,再切 SGLang。