欢迎光临

PD 分离后首 Token 变慢?KV Cache 传输瓶颈排查


Prefill 和 Decode 分开部署后,首 token 变慢,首先要区分是 Prefill 排队、计算慢、KV 等待传输,还是 Decode 端迟迟无法接收。只看平均 TTFT 或网卡带宽,通常分不出这几种情况。

先选一个可重现的慢请求,按请求 ID 把路由、两个 worker 与客户端时间线拼起来。以下是复跑和故障定位方法,示例数字用来演示判读,来自假设场景。

先建立同资源基线

在同型号、同数量 GPU 和相同拓扑下,比较原有一体部署与 P/D 两池。基线可以是两张卡各跑一个一体副本,对照一张做 Prefill、另一张做 Decode。固定模型、精度、KV dtype、路由入口、请求分布和缓存命中策略,记录实际 GPU 数、KV 容量和每端并行配置。使用同一份请求序列,分别跑空载短请求、固定输出预算的长 prompt,以及混合负载。记录 TTFT P50/P95、TPOT P95、成功率和满足双延迟目标的吞吐。

单卡一体对比双卡分离也有容量规划价值,但需要把资源差异明示。若仍未建立统一的客户端测量口径,先使用vLLM 和 SGLang 同口径压测方法。如需部署与架构背景,参见PD 分离部署总览。

把一条慢请求拆成阶段

阶段 建议记录 异常时检查
入口到 Prefill 开始 网关接收、路由选中、Prefill 队列入出时间 路由分配不均、长输入占满批、入口限流
Prefill 计算 开始与完成、输入长度、命中前缀长度 缓存冷启动、长上下文、GPU 饱和
KV 接收准备与传输 接收槽位就绪、提交、实际开始、传输完成、字节数 分别看槽位等待、传输队列、带宽和失败重试
Decode 与客户端首包 KV 可读、worker 出首个内容、客户端收首个有效内容 Decode 排队、生成、代理缓冲与连接

表中的名字是观测事件,具体指标名以所装版本和后端为准。首 token 在哪一侧生成、何时被路由器转发,也应以实际实现为准。跨机时先验证时钟偏差,优先使用各进程用单调时钟得到的阶段耗时。某些实现会把 KV 传输与计算重叠,应按 trace 的关键路径解释端到端延迟。不要把各阶段 P95 相加,也不要用跨机未校时的时间戳相减。

估算 KV 大小,验证带宽是否足以解释变慢

对普通全注意力 GQA 模型,可用 2 × 层数 × KV heads × head dimension × 每元素字节 × 传输 token 数估算未压缩的 KV 逻辑字节数。比如 32 层、8 个 KV heads、每头 128 维、BF16、4,096 个待传 token,约为 512 MiB。若有效带宽为 10 GiB/s,理想数据搬运约 50 ms。若观察到 250 ms,应先确认计时范围是否还包含接收槽位等待、连接建立或队列等待。

这个估算不包含填充、元数据、重复传输和具体张量并行切片,也不适用于直接推算 MLA 或滑动窗口模型。实际用后端记录的字节数和数据传输区间计算有效带宽。网卡标称速率只能用于做上限检查。

按症状做单变量复测

  1. 只有长 prompt 慢。保持并发和输出预算不变,将输入长度分档。比较 Prefill 计算耗时、实际 KV 字节数和传输时间的斜率。若耗时随字节数上升且传输窗口占主导,再排查数据路径。
  2. 空载正常,忙时才慢。按相同请求序列逐级增加并发。若 Decode 接收准备阶段先恶化,同时链路吞吐仍低,先检查目标 KV 槽位和 Decode 池的占用。若提交后等待随并发增大,检查传输队列和拥塞。
  3. 连接成功但带宽异常。分别在两台 worker 核对网卡和实际传输后端,排除接口选错、路由绕行和版本配置差异。用后端日志确认数据走的是预期链路。
  4. worker 出首包快,客户端仍慢。对同一请求比对 worker 生成、网关收到、客户端收到三处时间。用直连与经代理各做一次流式请求,检查 SSE 是否被缓冲。
1
2
3
4
5
6
7
# 在 P 和 D 节点分别运行,替换 PEER_IP 和网卡名。
ip route get PEER_IP
ip -s link show dev eth0
nvidia-smi topo -m
# RDMA 环境按系统已安装工具核对链路及 HCA。
rdma link show
ibv_devinfo

上面的命令核对基础拓扑。若需要测实际传输容量,在获准的测试环境中用与部署一致的后端做链路测量,并与应用 trace 对齐。SGLang 对 Mooncake 和 NIXL 的接口、设备选择与配置要求见SGLang PD 分离官方文档。

什么时候继续用 PD 分离

在相同资源预算下,如果分离后混合负载的 TPOT 尾延迟明显改善,并且 TTFT 仍满足目标、成功率稳定,就有保留价值。如果低并发已经满足目标,而新增的传输与排队使长请求频繁超出 TTFT 门槛,应回到一体方案对照,或仅把确实受益的工作负载路由到分离池。复测时用同一时间窗、请求序列和达标门槛比较。

【本站文章皆为原创,未经允许不得转载】:汤不热吧 » PD 分离后首 Token 变慢?KV Cache 传输瓶颈排查
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址