正文
VLLM部署
启动方法:
CUDA_VISIBLE_DEVICES=1 vllm serve /home/worker/models/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B –port 10001 –host 0.0.0.0 –dtype half –max-model-len 11000 –max-num-batched-tokens 11000 –max-num-seqs 8 –gpu-memory-utilization 0.9 –disable-log-requests –served-model-name ds-qwen3-8b
使用Github的VLLM项目进行压测
VLLM项目中自带 benchmark。
GPT给的最小可行方案(基于随机文本):
python benchmarks/benchmark_serving.py –model ds-qwen3-8b –host 127.0.0.1 –port 10001 –tokenizer /home/worker/models/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B –dataset-name random –random-input-len 512 –random-output-len 512 –num-prompts 100 –max-concurrency 8 –seed 42
============ Serving Benchmark Result ============
Successful requests: 100
Maximum request concurrency: 8
Benchmark duration (s): 114.51
Total input tokens: 50999
Total generated tokens: 34814
Request throughput (req/s): 0.87
Output token throughput (tok/s): 304.02
Total Token throughput (tok/s): 749.37
—————Time to First Token—————-
Mean TTFT (ms): 201.15
Median TTFT (ms): 160.06
P99 TTFT (ms): 815.86
—–Time per Output Token (excl. 1st token)——
Mean TPOT (ms): 25.16
Median TPOT (ms): 25.14
P99 TPOT (ms): 27.87
—————Inter-token Latency—————-
Mean ITL (ms): 25.03
Median ITL (ms): 22.88
P99 ITL (ms): 138.59
==================================================
✅ 基本请求统计
- Successful requests含义:压测过程中成功完成的请求数(未超时、未报错)。作用:反映服务稳定性,成功率过低说明接口或硬件负载能力不足。
- Maximum request concurrency含义:本次测试设置的最大并发请求数,即同时发出的请求数量上限。作用:模拟真实场景的并发压力,数值越高,服务端压力越大。
- Benchmark duration (s)含义:整个测试运行的时间(单位:秒)。作用:用于计算吞吐量、性能曲线。
✅ Token统计相关
- Total input tokens含义:所有请求的输入文本(Prompt)Token 总数。作用:衡量输入负载大小,影响内存和推理速度。
- Total generated tokens含义:所有请求生成的输出 Token 总数。作用:衡量模型输出负载,是 GPU 解码阶段性能的关键指标。
✅ 吞吐量指标
- Request throughput (req/s)含义:每秒成功处理的请求数。计算:
Successful requests / Benchmark duration作用:评估整体请求处理能力。 - Output token throughput (tok/s)含义:每秒生成的 输出 Token 数(即模型解码速度)。计算:
Total generated tokens / Benchmark duration作用:反映 输出速度,是最关键指标之一。 - Total Token throughput (tok/s)含义:每秒处理的 Token 总数(包括输入和输出)。计算:
(Total input tokens + Total generated tokens) / Benchmark duration作用:衡量整体 Token 处理效率。
✅ 延迟指标
TTFT (Time To First Token)
- Mean TTFT (ms)含义:平均首 Token 延迟,即请求发出到生成第一个 Token 的时间。作用:评估 首响应速度,影响用户体验。
- Median TTFT (ms)含义:首 Token 延迟的中位数,比平均值更抗异常值影响。作用:更准确反映大多数请求的真实延迟。
- P99 TTFT (ms)含义:99% 请求的首 Token 延迟不超过该值(极端场景)。作用:衡量 最差性能(长尾问题)。
TPOT (Time per Output Token)
- Mean TPOT (ms)含义:平均每个输出 Token(不包括首 Token)生成所需时间。作用:衡量模型的 解码速度。
- Median TPOT (ms)含义:每个 Token 输出延迟的中位数。作用:反映典型解码性能。
- P99 TPOT (ms)含义:99% 请求的每个输出 Token 延迟不超过该值。作用:检查极端情况下的性能。
ITL (Inter-token Latency)
- Mean ITL (ms)含义:连续两个 Token 之间的平均延迟(比 TPOT 更直接表示流式生成速度)。作用:衡量 模型生成平滑度,影响流式输出体验。
- Median ITL (ms)含义:Token 间延迟的中位数。作用:真实体验的参考指标。
- P99 ITL (ms)含义:99% 请求的 Token 间延迟不超过该值。作用:反映长尾 Token 生成速度问题。