Files
agentic-pd-hybrid/docs/PROJECT_OVERVIEW.md

3.0 KiB
Raw Permalink Blame History

项目概览

这个项目验证一个问题:

agentic coding workload 里,如果 router 更懂 session 和 KV cacheP/D serving 的端到端延迟能不能更低。

当前基于:

  • SGLang v0.5.10
  • Qwen3-Coder-30B-A3B-Instruct
  • 单机 8 GPU
  • Mooncake loopback 模拟 P -> D 传输

设计

代码按两层分开:

  • 机制:启动 SGLang、发送请求、管理 session、收集 metrics。
  • 策略:决定请求去哪个 P node、哪个 D node。

这样后续可以单独改 routing policy不把它和 SGLang/xPyD 机制混在一起。

已实现

  • 单机 P/D stack 启动和关闭。
  • 本地 Python PD router。
  • Ali trace 加载、session 级采样、synthetic prompt 生成。
  • 按 trace 原始到达时间 replay不用固定 concurrency 强行压流量。
  • request-level metrics 和 summary。
  • 路由策略:
    • default
    • sticky
    • kv-aware
  • serving 机制:
    • pd-disaggregation
    • kvcache-centric
    • pd-colo
  • micro-benchmark trace 生成。
  • worker-managed / router-managed KV admission 对比。
  • worker-managed 下的 D session soft-cap避免所有 session 都挤进 D KV。
  • SGLang patch
    • decode worker 支持 PD mode 下 local append-prefill
    • 暴露 streaming session cache 状态;
    • 支持按 session 粒度 evict idle streaming session
    • 支持 direct append admission 查询。

当前结论

micro-benchmark 上,kvcache-centric 可以比 pd-disaggregation 好。

原因很简单session 少D KV 放得下turn2+ 可以直接走 D session省掉一部分 P/D 路径开销。

但在 300+ request、58 session 的测试上,情况不同:

  • D KV 放不下全部 session working set。
  • naive worker-managed 会频繁 evict/reseed 整个 session。
  • reseed 和 transfer 压力会抵消 KV reuse 收益。
  • aggressive P-backup 会增加尾延迟风险。

当前 soft-cap 优化后:

  • worker-managed 比旧版本更稳;
  • TTFT 明显下降;
  • 没有再出现 600s transfer hang 被当成成功响应的问题;
  • 但 sampled Ali trace 上,pd-disaggregation 仍然略好。

当前判断:

KV-cache-centric 只应该保留真正 hot 的 session。不是所有 session 都值得占 D KV。

下一步最有价值的是:

  • inter-turn-gap-aware admission
  • session aging
  • 更精确地预测哪些 session 会很快复用 KV。

SGLang 维护方式

third_party/sglang 已纳入主仓库。

历史结构:

  • chore: vendor sglang v0.5.10 snapshot:干净上游基线。
  • feat(sglang): ... / fix(sglang): ...:我们的 SGLang patch。

后续改 SGLang 时:

  • 只改 third_party/sglang 下相关文件;
  • 单独提交;
  • commit message 带 (sglang)
  • 不把 benchmark 输出、pyc、日志混进提交。

已知限制

  • 这是实验原型,不是生产 router。
  • 当前主要验证单机 8 GPU。
  • Ali trace 没有原始 prompt只能用 hash_ids 合成 prompt。
  • 当前 routing 还缺少真正的 hot-session 预测。