启动推理服务时提示端口已被占用,换 –port 之后仍失败,日志指向的是另一组内部通信端口。
一开始怀疑是「同一台机器上跑了多个实例,端口段重叠」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。上一次启动的进程残留,仍占着默认端口。也可能是只改了对外端口,没有改分布式通信端口。
少数情况下是容器网络模式导致端口映射冲突。
第一件事是清理残留进程
Get-Process python | Where-Object {$_.Path -like '*sglang*'} | Stop-Process
显式指定对外端口与内部端口段
python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 30001 --nccl-port 20001
随后确认端口监听成功
netstat -ano | findstr 30001
末了用接口做一次冒烟请求
curl http://localhost:30001/v1/models
别只看报错消失,验证要多做一步。服务正常启动并监听指定端口,接口返回模型信息,多个实例可以共存于同一台机器。
分布式模式下每个 rank 都要独立端口,只改主端口而 rank 端口重叠,表面能启动但请求会随机失败。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。