比起Ollama
的方便,有些时候高并发更重要,因此这篇文章将实现在两台电脑(双节点)上部署 SGLang
(当然如果你还有多余的也可以加进来当节点),运行 Qwen2.5-7B-Instruct
模型,实现本地资源的充分利用。
192.168.0.12
,1 个 英伟达显卡192.168.0.13
,1 个 英伟达显卡Qwen2.5-7B-Instruct
,FP16 下约需 14GB 显存,使用 --tp 2
后每 GPU 约 7GB (权重)+ 2-3GB ( KV 缓存)。
两节点通过以太网( TCP )通信,网络接口为 eno1 。
这里根据自己电脑 ip addr 查询即可
使用 FP16 精度以保留最大精度,显存占用较高,需优化配置。
在开始安装和部署之前,确保以下条件满足:
Python
的环境需要一样ping 192.168.0.12 # 从节点 1
ping 192.168.0.13 # 从节点 0
sudo ufw allow 50000
sudo ufw allow 30000
# 具体网卡根据实际调整
ip addr show eno1
若 eno1
不存在,替换为实际接口(如 eth0
或 enp0s3
)。
CUDA Toolkit
(推荐 12.x ):nvidia-smi # 确认驱动和 CUDA 版本
输出应显示 英伟达和 CUDA 版本(如 12.4 )。
若未安装,参考 NVIDIA 官网 自行安装即可:
python3 --version
Qwen2.5-7B-Instruct
模型约需 15GB 磁盘空间 /opt/models/Qwen/Qwen2.5-7B-Instruct
路径有足够空间在两节点上分别安装 SGLang 和依赖。以下步骤在每台电脑上执行。
conda create -n sglang_env python=3.10
conda activate sglang_env
备注: 安装过程会自动安装 对应显卡相关的依赖,如
torch
,transformers
,flashinfer
等
pip install --upgrade pip
pip install uv
uv pip install "sglang[all]>=0.4.5" --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python
验证安装:
python -m sglang.launch_server --help
应显示 SGLang 的命令行参数帮助信息。
国外使用
huggingface
,国内使用modelscope
在两节点上下载模型到相同路径(如 /opt/models/Qwen/Qwen2.5-7B-Instruct
):
pip install modelscope
modelscope download Qwen/Qwen2.5-7B-Instruct --local-dir /opt/models/Qwen/Qwen2.5-7B-Instruct
或手动从 Hugging Face
或者 modelscope
下载并解压到指定路径。确保两节点模型文件一致。
使用张量并行(--tp 2 )将模型分布到 2 个 GPU (每节点 1 个)。以下是详细的部署步骤和命令。
NCCL_IB_DISABLE=1 NCCL_P2P_DISABLE=1 GLOO_SOCKET_IFNAME=eno1 NCCL_SOCKET_IFNAME=eno1 python3 -m sglang.launch_server \
--model-path /opt/models/Qwen/Qwen2.5-7B-Instruct \
--tp 2 \
--nnodes 2 \
--node-rank 0 \
--dist-init-addr 192.168.0.12:50000 \
--disable-cuda-graph \
--host 0.0.0.0 \
--port 30000 \
--mem-fraction-static 0.7
NCCL_IB_DISABLE=1 NCCL_P2P_DISABLE=1 GLOO_SOCKET_IFNAME=eno1 NCCL_SOCKET_IFNAME=eno1 python3 -m sglang.launch_server \
--model-path /opt/models/Qwen/Qwen2.5-7B-Instruct \
--tp 2 \
--nnodes 2 \
--node-rank 1 \
--dist-init-addr 192.168.0.12:50000 \
--disable-cuda-graph \
--host 0.0.0.0 \
--port 30000 \
--mem-fraction-static 0.7
注意: 如果出现 OOM 的情况则调整
--mem-fraction-static
参数,默认是 0.9 ,改为 0.7 即可。0.9 调整到 0.7 时 当前 7B 模型 占用显存直接下降 2G 左右。 CUDA Graph 会额外分配少量显存(通常几百 MB )来存储计算图。如果显存接近上限,启用 CUDA Graph 可能触发 OOM 错误。
![]() |
1
tool2dx 1 天前
前几天 v2 的论坛老哥,二手买了一个 8 pcie 的挖矿淘汰设备,拿来跑模型,还是舒服的。
|
2
senduy 1 天前
感谢大佬分享
之前看油管博主用 mac 集群跑 LLM ,瓶颈在网络传输,能问一下用的什么网络设备吗? |
3
lovestudykid 1 天前
通过网口连接,这个并行有必要吗?
|
![]() |
4
liprais 1 天前
以太网还是省省吧
|
![]() |
5
ZiChun 1 天前
一般来说不建议跑 fp16 ,fp8 对企业级已经算妥妥的够用了。
|
![]() |
6
suke119 OP @lovestudykid 请注意是不同电脑最大化资源利用,加入你有两个服务器,不是显卡不在同一个服务器上 ;其次 现在的服务器都有光模块的,光模块速率和网线连接还是有区别的
|
![]() |
10
scguanzhong 1 天前
老师,请教一下,我们客户有 4 张 t4 ,在一个机器里,我们本来想通过 SGLang 部署 Qwen2.5-7B ,但是现在给我反馈的是 t4 显卡太老了,部署不上,只能通过 Ollama 部署大模型,但是 Ollama 不太稳定,没办法用,他们说的是真的么?如果是真的有什么解决方法么?现在已经不可能再去买 L4 显卡了😭
|
![]() |
11
keakon 1 天前
如果单卡能部署的话,不要用 tp ,每个 GPU 开一个实例,前面用 nginx 之类的负载均衡,速度至少快几倍。
|
![]() |
12
suke119 OP @scguanzhong 用 vllm
|
![]() |
15
zhuanggu 1 天前
不太理解 7B 的模型也要搞的这么复杂吗?我之前跑 ds 8B 的,也是在普通的笔记本上跑,tokens 也能接受。有不是跑 32B 以上
|
18
Legman 1 天前 via Android
有没有测试过 SGLang 、vllm 和 transformer 的性能差异
|
![]() |
19
reeco 1 天前
7B 不必考虑非量化场景,单机 2 张卡,2 个实例就搞定了
|
20
abbottcn 1 天前 via iPhone
要么是支持 RoCE 的以太网卡,要么是 IB 网卡。
支持 RDMA ,是保证设备间高效通讯的前提。 要么是单机实现,卡直接 P2P 。 |
![]() |
21
kenshin912 1 天前
你这个光口的网络通信会成为性能瓶颈吗 ?
我们目前是运行了 2 个 vLLM 分别指定 GPU 0 和 GPU 1 |