🧠 图解记忆: 先分清显存、排队、计算还是依赖故障,再用预算、调度、降级和观测治理。
💡 答案要点
常见问题与解决方案:
问题1:显存溢出(OOM)
python
# 限制最大序列长度
vllm = LLM(max_model_len=8192, gpu_memory_utilization=0.9)
# 量化降低显存
llm = LLM(model="Qwen2.5-7B-AWQ", quantization="AWQ")问题2:延迟不稳定
python
# 启用 chunked prefill
vllm = LLM(enable_chunked_prefill=True, max_num_batched_tokens=8192)
# 启用投机解码
vllm = LLM(speculative_model="Qwen2.5-0.5B")问题3:吞吐量低
python
# 调整 GPU 利用率
vllm = LLM(gpu_memory_utilization=0.95)
# Tensor并行
llm = LLM(tensor_parallel_size=4)生产环境监控指标:
| 指标 | 合格线 | 说明 |
|---|---|---|
| GPU 利用率/计算与显存带宽 | 无通用合格线 | 结合 prefill/decode 阶段判断瓶颈 |
| TTFT、TPOT/ITL、P95/P99 | 由业务 SLO 决定 | 同时看交互体验和尾延迟 |
| 错误率、OOM、超时率 | 由业务容错目标决定 | 按错误类型拆分,避免平均值掩盖问题 |
面试话术:
"排障不能只看 GPU 利用率:prefill 往往更偏计算,decode 往往更受显存带宽影响。OOM、尾延迟和吞吐下降要结合请求长度分布、排队时间、KV Cache 使用率、批大小及 profiler 判断,再选择限流、chunked prefill、量化或缓存等手段。"
📚 参考:vLLM 官方文档(FAQ 与生产实践)
