Skip to content

01. Request Path and Metrics | 请求链路与指标口径

页面目标

从一次最小推理请求开始,沿着 PrefillKV CacheDecode 走一遍,认识 TTFTTPOT、throughput、P99 和 peak memory。完成请求阶段与指标的映射后,你应该能够说明请求经过了哪些阶段,把阶段连接到可观察指标,并根据现象判断下一步该看哪类机制。需要补充 Attention 基础时,可先阅读 04 Attention(MHA / GQA)

核心机制

请求可以先拆成 PrefillDecode 和输出三个主要处理阶段;KV Cache 不是独立的串行阶段,而是由 Prefill 写入、由 Decode 持续读取和追加的状态对象。TTFT 是首 token 延迟,TPOT 是后续 token 的平均生成间隔;吞吐、P99 和峰值显存分别帮助我们观察系统产出、尾部延迟和资源占用。下图把主要阶段、状态对象与指标放在同一条链路中。

不同阶段关注的指标不同:

请求链路与指标定位

指标它回答的问题主要关联阶段
TTFT首个 token 多久返回?prefill、Attention、prompt length
TPOT后续 token 多久生成一个?decode、KV Cache、调度
throughput单位时间生成多少 token?batching、调度、生成策略
peak memory运行期间最高占用多少显存?权重、KV Cache、batch、量化
P50 / P95 / P99典型请求和慢请求的延迟是多少?排队、batch、调度、系统抖动

把指标放回请求链路时,先区分“阶段耗时”和“用户看到的结果”。TTFT 主要覆盖请求进入系统后到首 token 返回的路径,TPOT 主要反映首 token 之后的 Decode 循环;排队、数据传输和调度可能同时影响两者。因此一次实验至少要同时记录阶段时间、端到端延迟和请求条件,避免只用一个平均值解释整个系统。

证据层需要记录的内容用途
请求条件prompt tokens、generated tokens、batch、concurrency、模型和 dtype判断两次测量是否可比较
阶段表现prefill 时间、decode 时间、TTFT、TPOT定位请求链路中的主要阶段
服务表现E2E latency、throughput、P50/P99、排队时间判断优化是否改善用户可见结果
资源表现peak memory、GPU 利用率、Cache 使用量判断收益来自计算、访存还是容量变化

同一个模型在不同请求形态下,瓶颈可能完全不同。因此进入后续机制前,先给 workload 标注请求长度、到达方式和服务目标,而不是只记录一个平均 Prompt 长度。

workload 类型典型请求形态优先关注的指标主要进入方向
交互式短请求Prompt 和输出都较短,关注首 token 体验TTFT、P99、超时率Prefill、队列和调度
长上下文Prompt 很长或上下文持续增长TTFT、peak memory、Cache 使用量Attention、Chunked Prefill、KV Cache
批处理请求可等待,追求单位时间产出throughput、tokens/s、成本batching、kernel、量化
突发并发到达率短时间快速上升排队时间、P95/P99、拒绝率接纳控制、调度、扩缩容

一次推理请求还要经过多个系统对象。模型决定计算图和状态结构,运行时或 backend 负责把模型映射到设备,调度器组织请求和 Cache,硬件执行 kernel 并提供显存与互联能力。性能问题应先定位到对象,再选择机制;否则容易把模型结构问题误判成 backend 问题,或把调度等待误判成 kernel 变慢。

系统对象主要负责什么可观察证据
模型与权重层结构、dtype、权重和 KV 表示参数量、dtype、模型 revision
Runtime / backendloader、kernel、Cache 实现和请求执行backend 版本、kernel、执行路径
Scheduler批次、队列、接纳、暂停与服务池batch、queue time、调度事件
硬件与互联计算、显存、带宽和跨设备传输GPU 利用率、显存、带宽、通信时间

Attention 的架构变化会沿着请求链路影响不同成本:MHA、GQA 和 MQA 主要改变 KV Cache 的规模,MLA 改变 Cache 的内部表示,FlashAttention 则改变 Attention 的执行和访存路径。它们属于不同层次,应该分别观察架构、状态和 kernel 证据。

Attention 方向主要改变影响的推理成本后续正文
MHA → GQA / MQAKV heads 数量KV Cache 显存、Decode 访存04
MHA / GQA → MLAKV 状态表示Cache 容量、恢复或重构计算04、71
标准 Attention → FlashAttention中间矩阵与访存路径Prefill 时间、工作集、带宽02
单请求 Cache → Paged / Prefix Cache状态分配与复用并发容量、TTFT、碎片04、07

MoE 是另一类架构变量:总参数量不等于每个 token 的实际计算量。推理时还要观察 Router 选择的专家数、专家负载、容量因子和 token dispatch 通信;这些因素会在多 GPU Serving 中进一步影响负载均衡和吞吐。

参考入口:指标定义可看 vLLM Metrics;Serving 实现可看 vLLM

判断框架

比较前先固定 workload,也就是一组可复现的输入和运行条件:模型、backend(实际执行推理的框架或服务)、Prompt(输入文本)、generated tokens(输出长度)、batch(一次并行处理的请求数)、并发、dtype(计算数据类型)和 cache policy(缓存管理方式)。然后根据现象选择下一步:

观察到的现象优先怀疑的瓶颈下一步
长 prompt 使 TTFT 明显升高prefill-bound(输入处理受限)或 Attention 访存进入 02
TPOT 高、生成阶段占比大decode-bound(逐 token 生成受限)、KV Cache 或调度进入 03 / 04
peak memory 接近预算、batch 上不去memory-bound(显存或访存受限)或 Cache 容量进入 04 / 05
多请求时 P99 明显升高排队、batch 组织或调度进入 04 / 06
没有明显单点瓶颈需要端到端比较进入 06

Released under the MIT License.