LLM 推理服务性能指标详解

基于 DeepSeek v4 节点监控数据的实战解析

一、核心概念:用餐厅来理解推理服务

把推理服务比作一家餐厅,可以非常直观地理解所有性能指标:

餐厅概念 推理服务概念
餐厅桌子 GPU 资源
顾客入座 请求被处理
门口排队 请求队列(Queue)
正在就餐 正在推理(Running)
上第一道菜 返回第一个 Token
全程就餐时间 端到端延迟(E2E Latency)
厨房操作台 显存 / KV Cache

二、延迟指标

2.1 TTFT(Time To First Token)—— 上第一道菜的时间

从用户发送请求,到收到第一个 Token 的等待时间。

这是用户最直接的"响应感",TTFT 越低,用户越不会觉得系统卡死。

百分位数(P50 / P95 / P99)解释

百分位数用来描述"不同运气的用户的体验":

指标 含义 通俗理解
P50 50% 的请求在此时间内收到第一个 Token 普通用户的体验(中位数)
P95 95% 的请求在此时间内收到第一个 Token 较差情况下的体验
P99 99% 的请求在此时间内收到第一个 Token 最倒霉的 1% 用户的体验

示例: TTFT P50=2.5s / P95=20s / P99=40s

每 100 个请求里,有 1 个用户需要盯着空白屏幕等超过 40 秒才能看到第一个字。对用户体验来说,40 秒的空白基本等同于"系统卡死"。

2.2 E2E Latency(End-to-End Request Latency)—— 全程就餐时间

从发送请求到收到完整回复的总时间。

同样用 P50 / P95 / P99 衡量。P99 反映最差用户的体验上限。

示例数据中: E2E P99 最高达到 13.3 分钟,意味着最倒霉的用户等了超过 13 分钟才拿到完整结果。

2.3 Average E2E Latency —— 平均就餐时长

所有请求的端到端延迟均值

  • 反映系统整体负载趋势
  • 均值持续上涨,说明系统开始吃力
  • 需结合 Queue / Running 数据一起判断根因

三、队列指标

3.1 Queue(排队人数)

在门口等候、尚未被 GPU 处理的请求数量。

  • Queue 接近 0 → 请求进来基本立刻能被处理
  • Queue 持续高企 → 系统已过载,请求积压严重
3.2 Running(正在就餐人数)

正在被 GPU 推理处理的请求数量。

  • Running 数量反映 GPU 的实际并发负载
  • Running 高但 Queue 低 → 不是进不来,而是每个请求处理本身就慢
3.3 Queue / Running Ratio(排队比)

排队人数 ÷ 正在处理人数 的比值。

  • 比值接近 0 → 系统健康,几乎没有积压
  • 偶发尖刺 → 瞬间并发高峰,短暂积压但很快消化
  • 持续偏高 → 系统长期过载

四、显存与 KV Cache

4.1 Used Tokens / KV Pressure —— 操作台占用率

推理过程中每个请求都需要在显存中存放 KV Cache(注意力机制的中间结果)。

  • KV Pressure 低(如 30%)→ 显存压力不大,不是瓶颈
  • KV Pressure 接近 100% → 显存不足,系统开始换页,速度大幅下降

五、吞吐指标

5.1 Prompt Token Rate vs Generation Token Rate —— 备菜速度 vs 出菜速度

推理分为两个阶段,性质完全不同:

阶段 别名 餐厅比喻 特点
Prefill Prompt Token Rate 备菜速度 输入 Token 全部并行计算,速度极快
Decode Generation Token Rate 出菜速度 每次只生成一个 Token,必须串行,天然慢

典型数据对比:

Prompt Token Rate:~20,000 tok/s(备菜飞快)
Generation Token Rate:~121 tok/s(出菜极慢)
速度差:约 100 倍

这 100 倍的差距不是故障,是大模型的物理特性。Decode 阶段无法并行,是推理延迟的天然瓶颈。

六、为什么不同模型的出菜速度有差异?

对比 DeepSeek v4、GLM、Kimi 三个模型,Generation tok/s 都在几百量级,这是正常的。但仍有差异,原因如下:

6.1 模型体量
  • DeepSeek v4 是 MoE 超大模型,激活参数量大
  • 每生成一个 Token 消耗的计算量更多,速度自然更低
6.2 部署并行策略的影响
并行策略 原理 对单请求速度的影响 对并发的影响
数据并行(Data Parallel) 多卡各跑一份模型,请求分流 不加速单个请求 提升整体吞吐
张量并行(Tensor Parallel) 多卡协同处理同一个请求 加速单个请求 减少可并发数

示例: Kimi-k2.6 使用张量并行,单请求延迟更低;DeepSeek v4 使用数据并行,单请求速度不如张量并行,但整体吞吐更高。两种策略各有取舍。

七、影响"出菜速度"的综合因素

GPU 使用率只是其中一个因素,完整的影响因素如下:

出菜速度 = f(GPU算力, 显存容量, 请求复杂度, 并发数量, 部署策略)
因素 说明
GPU 算力 厨师的能力上限,算力越强越快
显存(KV Cache) 操作台大小,不够用时要换页,速度骤降
输出 Token 数 菜品复杂度,输出越长耗时越久
并发请求数 同时开几桌,越多每桌分到的资源越少
并行策略 数据并行 vs 张量并行,影响单请求 vs 整体吞吐的取舍

八、实战案例总结

以下是单次 DeepSeek v4 节点的综合诊断结果:

指标 状态 结论
KV Cache 压力 正常(~30%) 显存不是瓶颈
Queue 积压 基本没有 不存在大量排队
Queue/Running Ratio 接近 0 系统健康,偶发尖刺正常
Prompt Token Rate 高(~20,000 tok/s) Prefill 阶段正常
Generation Token Rate 低(~121 tok/s) Decode 慢,但符合模型特性
E2E P99 最高 13.3 分钟 高并发时长尾延迟明显

根本原因:

不是显存不够、不是请求排队,而是 DeepSeek v4 体量大 + 数据并行策略 导致单请求 Decode 速度有限。高并发时多请求争抢 Decode 算力,长尾延迟显著上升。

Copyright © https://yan-jian.com 2023 - 2026 All Right Reserved all right reserved,powered by Gitbook更新时间: 2026-06-05 16:29:39

results matching ""

    No results matching ""