vllm多卡并行踩坑与调试记录 📅 发布时间:2026/8/19 13:38:58 👁 浏览次数: 1. 问题一GPU 算力 100% 持续一段时间报错超时退出解决思路执行export VLLM_LOGGING_LEVELDEBUG查看详细日志发现持续输出Waitingfor1local,0remote core engine proc(s)to start.可以再查看 NCCL 的详细日志export NCCL_DEBUGINFO。网上查到可以添加export NCCL_P2P_DISABLE1禁用 NCCL 的 GPU 间 P2PPeer-to-Peer通信强制多卡间数据通过 CPU 内存中转而不是直接走 GPU 间高速通道。但此方法对我无效。解决方案在启动命令中增加--disable-custom-all-reduce参数。这是一个用于解决特定硬件环境下稳定性问题的调试参数。它的作用是关闭 vLLM 默认启用的高性能通信内核Custom All-Reduce让 vLLM 回退到使用更通用但更稳定的 NCCL 通信后端。问题分析执行nvidia-smi topo -m可以明确看出GPU 0 和 GPU 1 通过 NVLink 连接NODEGPU 2 和 GPU 3 通过 NVLink 连接NODE但跨组如 GPU 0 与 GPU 2是 SYSPCIe连接。这是典型的双路 CPU 服务器拓扑。虽然我手动设置了export CUDA_VISIBLE_DEVICES‘0,1’即仅使用同一分组的 GPU但 NCCL 的 P2P 能力检测是针对全局所有 GPU 进行的而不仅仅是指定的几张卡。2.问题二vllm报错 Request chatcmpl-b509f6fce061d8bb failed with an internal error during generation排查思路首先打开详细日志调试功能exportVLLM_LOGGING_LEVELDEBUGexportNCCL_DEBUGTRACEexportVLLM_TRACE_FUNCTION1这样就可以看到vllm的详细的日志如果还找不到问题可以再设置exportCUDA_LAUNCH_BLOCKING1这个命令的意思是把异步变为同步会严重影响性能但是能再报错的时候直接报出方便查找问题。我这里在打开日志调试就找到问题了ERROR 08-1818:08:10[v1/structured_output/backend_xgrammar.py:162]Failed to advance FSMforrequest chatcmpl-83e8efc2da201b54-866464fefortokens198. Pleasefilean issue.其实就是开启了工具调用以后的工具格式不兼容目前是设置--reasoning-parser qwen3修改为--reasoning-parser deepseek_r1解决