---
title: vLLM-Ascend PD分离场景下代理脚本配置错误导致ConnectError问题排查与解决方案-官方技术文章-昇腾社区
description: 在基于vLLM-Ascend的推理系统中，为提升大模型推理效率，常采用Prefill-Decode（PD）分离架构，将计算密集型的Prefill阶段与解码阶段部署在不同节点上，实现资源解耦与弹性调度。在该架构下，需通过专用的负载均衡代理脚本协调请求分发与KV Cache的跨节点传输。 本文针对在vLLM-Ascend v0.17.0rc1版本中，使用Deepseek-V3.2-w8a8模型进行PD
keywords: LLM,Ascend,PD,ConnectError,分离场景下代,理脚本配置错,误导致,问题排查与解
url: https://www.hiascend.com/developer/techArticles/20260602-1?envFlag=1
section: (其他)
---

# vLLM-Ascend PD分离场景下代理脚本配置错误导致ConnectError问题排查与解决方案-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20260602-1?envFlag=1
描述: 在基于vLLM-Ascend的推理系统中，为提升大模型推理效率，常采用Prefill-Decode（PD）分离架构，将计算密集型的Prefill阶段与解码阶段部署在不同节点上，实现资源解耦与弹性调度。在该架构下，需通过专用的负载均衡代理脚本协调请求分发与KV Cache的跨节点传输。 本文针对在vLLM-Ascend v0.17.0rc1版本中，使用Deepseek-V3.2-w8a8模型进行PD
关键词: LLM,Ascend,PD,ConnectError,分离场景下代,理脚本配置错,误导致,问题排查与解

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

vLLM-Ascend PD分离场景下代理脚本配置错误导致ConnectError问题排查与解决方案

vLLM-Ascend PD分离场景下代理脚本配置错误导致ConnectError问题排查与解决方案

DeepSeekvLLM

发表于: 2026/06/02

## 背景概述

在基于vLLM-Ascend的推理系统中，为提升大模型推理效率，常采用Prefill-Decode（PD）分离架构，将计算密集型的Prefill阶段与解码阶段部署在不同节点上，实现资源解耦与弹性调度。在该架构下，需通过专用的负载均衡代理脚本协调请求分发与KV Cache的跨节点传输。

本文针对在vLLM-Ascend v0.17.0rc1版本中，使用Deepseek-V3.2-w8a8模型进行PD分离部署时，代理服务启动后请求报错`httpcore.ConnectError: All connection attempts failed`的问题，结合实际排查过程，总结出关键配置误区与解决方案，供开发者参考。

## 问题现象

模型情况：Deepseek-V3.2-w8a8

软件版本：vLLM-Ascend v0.17.0rc1

硬件环境：Atlas 800I A3 四机PD分离架构

服务可正常拉起，但通过代理脚本接收请求时，返回`httpcore.ConnectError: All connection attempts failed`。

## 排查过程

### 1. 检查代理环境变量

首先排查容器内是否存在HTTP代理配置，可能影响外部连接：

```c
echo $http_proxy
echo $https_proxy
```

```c
# 若输出不为空，执行 unset 清除
unset http_proxy
unset https_proxy
```

各节点未配置代理，排除环境变量干扰。

### 2. 验证网络连通性

为排除基础网络问题，停止代理服务，在P节点手动启动HTTP服务并测试：

```c
python3 -m http.server <端口> --bind <IP>
curl <IP>:<端口>
```

返回正常，说明节点间网络通畅，排除基础网络异常。

### 3. 检查节点服务配置一致性

Prefill与Decode节点服务可正常启动，问题聚焦于代理脚本配置。进一步分析发现：

1. `Prefill`、`Decode`节点启动脚本中`kv_connector`参数配置为`MooncakeLayerwiseConnector`。
2. 但代理脚本使用的是` load_balance_proxy_server_example.py`，与实际`Connector`类型不匹配。
3. 更换为对应脚本后，请求返回`500 Internal Server Error`，问题仍未解决。

```
httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'http://xx.xx.xx.xx:xx/v1/completions'
```

### 4.深入分析代理脚本代码

1. 传入参数`--host`为0.0.0.0，脚本内部将`metaserver`地址设置为 0.0.0.0。
2. 当请求到达代理时，代理将`metaserver`地址封装进`req_data`，至被选中的`Prefill`、`Decode`节点。
3. 节点在收到任务时，其内部的`Mooncake Connector`需与`MetaServer`通信以获取`KV Cache`元数据。
4. 在网络协议栈中，0.0.0.0代表本地回环。`Decode`节点会尝试在它自己的POD内寻找`MetaServer`进程。

5.`MetaServer`运行在`Prefill`节点，`Decode`服务无法找到进程，导致链接拒绝（`Connection Refused`），最终引发500错误。

## 问题根因分析

1. 现场使用的代理脚本文件错误；
2. 对于layerwise PD分离场景，代理脚本host地址不能配置为 0.0.0.0，需配置为节点的实际业务IP。

## 解决措施

换用`load_balance_proxy_layerwise_server_example.py`文件，并将--host参数配置为POD的实际 IP。

在vllm-ascend:v0.18.0rc1版本中，已合入相关运行时告警机制，可提前发现--host=0.0.0.0配置错误问题。详情见：vllm-ascend PR #7389 [了解详情](https://github.com/vllm-project/vllm-ascend/pull/7389)。

## 建议

1、更换代理脚本：使用与kv_connector类型匹配的代理脚本：

场景 "kv_connector": "MooncakeConnectorV1" 使用 load_balance_proxy_server_example.py；

场景 "kv_connector": "MooncakeLayerwiseConnector" 使用 load_balance_proxy_layerwise_server_example.py 。

在layerwise PD分离场景，代理脚本host地址不能配置为 0.0.0.0，需配置为节点的实际业务IP。

2、host地址配置规范：

在PD分离场景中，代理脚本的--host必须为节点的实际业务IP，禁止使用 0.0.0.0。

0.0.0.0仅适用于本地回环测试，不适用于跨节点通信场景。

3、版本升级建议：

在 vLLM-Ascend v0.18.0rc1 及后续版本中，已合入运行时校验机制（vllm-ascend PR #7389 [了解详情](https://github.com/vllm-project/vllm-ascend/pull/7389)），可自动检测并告警 --host=0.0.0.0的非法配置，建议升级以提前规避此类问题。

## 总结

在vLLM-Ascend PD分离架构中，代理脚本的配置直接影响系统稳定性与请求成功率。本案例中，因代理脚本与Connector类型不匹配，且host地址配置为 0.0.0.0，导致Decode节点无法正确连接MetaServer，引发连接失败与500错误。

通过匹配代理脚本类型与使用实际IP地址作为host地址，可有效解决该问题。建议在部署时严格遵循配置规范，并关注版本更新带来的运行时保护机制，提升系统健壮性。

✅ 附注：本文所述代理脚本位于`vllm-ascend/examples/disaggregated_prefill_v1`路径下，为vllm-ascend PD分离场景专用脚本，不可与其他场景混用。

本页内容
