Files
FastDeploy/docs/zh/best_practices/FAQ.md
yangjianfengo1 329d074326 [Docx] fix the broken link (#4479)
* 修改文档

* 修改文档
2025-10-17 18:28:50 +08:00

2.7 KiB
Raw Blame History

English

常见问题FAQ

1.显存不足

  1. 启动服务时显存不足:
  • 核对模型和量化方式对应的部署最小卡数,如果不满足则需要增加部署卡数
  • 如果开启了CUDAGraph尝试通过降低 gpu_memory_utilization来为CUDAGraph留存更多的显存或通过减少 max_num_seqs,设置cudagraph_capture_sizes来减少CUDAGraph的显存占用。
  1. 服务运行期间显存不足:
  • 检查log中是否有类似如下信息如有通常是输出block不足导致需要减小kv-cache-ratio
need_block_len: 1 free_list_len: 0
step max_id: 2 max_num: 133 encoder block len: 24
recover seq_id: 2 free_list_len: 144 used_list_len: 134
need_block_len: 1 free_list_len: 0
step max_id: 2 max_num: 144 encoder_block_len: 24

建议启用服务管理全局 Block功能在启动服务前加入环境变量

export ENABLE_V1_KVCACHE_SCHEDULER=1

2.模型性能差

  1. 首先检查输出长度是否符合预期,是否是解码过长导致。 如果场景输出本身较长请检查log中是否有类似如下信息如有通常是输出block不足导致需要减小kv-cache-ratio
need_block_len: 1 free_list_len: 0
step max_id: 2 max_num: 133 encoder block len: 24
recover seq_id: 2 free_list_len: 144 used_list_len: 134
need_block_len: 1 free_list_len: 0
step max_id: 2 max_num: 144 encoder_block_len: 24

同样建议启用服务管理全局 Block功能在启动服务前加入环境变量

export ENABLE_V1_KVCACHE_SCHEDULER=1
  1. 检查自动profile分配的KVCache block是否符合预期如果自动profile中受到显存波动影响可能导致分配偏少可以通过手工设置num_gpu_blocks_override参数扩大KVCache block。

3.服务可以支持多大并发?

  1. 服务部署时推荐配置环境变量
export ENABLE_V1_KVCACHE_SCHEDULER=1
  1. 服务在启动时需要配置max-num-seqs此参数用于表示Decode阶段的最大Batch数如果并发超过此值则超出的请求会排队等待处理, 常规情况下你可以将max-num-seqs配置为128保持在较高的范围实际并发由发压客户端来决定。

  2. max-num-seqs仅表示设定的上限但实际上服务能并发处理的上限取决于KVCache的大小在启动服务后查看log/worker_process.log会看到类似num_blocks_global: 17131的日志这表明当前服务的KVCache Block数量为17131, 17131block_size(默认64即知道总共可缓存的Token数量例如此处为1713164=1096384。如果你的请求数据平均输入和输出Token之和为20K那么服务实际可以处理的并发大概为1096384/20k=53