vLLM高并发推理住宅主机部署教程:从安装到压力测试
本文教你在一台装有NVIDIA显卡的家用电脑上搭建vLLM推理环境,并配置高并发参数,让你用普通住宅主机也能跑出接近商业服务器的推理吞吐量。
第一步:确认硬件与软件前提
vLLM高并发推理要求至少6GB显存的NVIDIA显卡(如RTX 3060/4060及以上),以及16GB以上系统内存。
操作系统建议Ubuntu 20.04/22.04或Windows Subsystem for Linux(WSL2),教程以Ubuntu为例。
- 显卡驱动:安装NVIDIA官方驱动,确保
nvidia-smi能正常输出GPU信息。 - CUDA与cuDNN:建议CUDA 12.x以上版本,cuDNN 8.9+。可通过
pip install nvidia-cuda-runtime-cu12快速安装运行时。
第二步:搭建Python环境并安装vLLM
为避免系统Python污染,推荐使用Miniconda创建独立环境:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
创建并激活环境:
conda create -n vllm python=3.10 -y
conda activate vllm
安装vLLM(国内用户可添加清华源加速):
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后验证:在终端输入python -c "import vllm; print(vllm.__version__)",无报错即成功。
第三步:配置高并发推理参数
vLLM默认使用全部显存,但住宅主机显存有限,需要微调参数提高并发。
建立一个推理脚本run_server.py:
from vllm import LLM, SamplingParams
# 以Qwen2.5-7B为例,根据显存选择量化方式
llm = LLM(model="Qwen/Qwen2.5-7B-Instruct",
max_model_len=4096,
gpu_memory_utilization=0.85, # 保留15%的系统使用
max_num_batched_tokens=8192, # 批处理token数,显存够可调高
tensor_parallel_size=1) # 单卡
关键参数说明:
gpu_memory_utilization:控制vLLM使用的显存比例,住宅主机建议0.85~0.9,避免OOM。max_num_batched_tokens:决定一次推理能同时处理的token总量,数值越大并发能力越强,但会增加显存压力。
第四步:运行压力测试验证效果
启动一个简单客户端测试并发请求能力。
创建bench.py:
import requests, time, concurrent.futures
prompt = "介绍一下Linux操作系统。"
url = "http://localhost:8000/v1/chat/completions"
def send_request():
resp = requests.post(url, json={"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": prompt}]}, timeout=60)
return resp.status_code
with concurrent.futures.ThreadPoolExecutor(max_workers=8) as executor:
futures = [executor.submit(send_request) for _ in range(32)]
for f in concurrent.futures.as_completed(futures):
pass
先启动服务端:
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2.5-7B-Instruct --port 8000 --max-num-batched-tokens 8192
再运行python bench.py,观察服务端输出中的每秒请求数(Requests/sec)和延迟。
如果出现显存溢出(CUDA out of memory)则降低gpu_memory_utilization或max_num_batched_tokens。
第五步:避坑指南与高频问题
Q1:安装vLLM时提示“No matching distribution”
A:确保Python版本为3.8~3.11,且已安装CUDA。尝试升级pip至最新:pip install --upgrade pip。
Q2:服务启动后模型加载极慢
A:首次加载会下载模型权重,建议使用huggingface-cli提前下载并挂载本地路径。比如:export HF_HOME=/path/to/cache。
Q3:并发请求时出现“ValueError: Request too long”
A:增大--max-model-len或拆分长文本,住宅主机建议max-model-len不超过8192。
Q4:为什么显存占用比预期高?
A:vLLM的KV Cache会占用额外显存,可尝试降低gpu_memory_utilization至0.8并调小max_num_batched_tokens。
完成后,你已经成功在住宅主机上部署了vLLM高并发推理服务。
根据实际显存调整参数后,即可用API调用进行本地AI应用开发。
如果你在处理过程中遇到其他报错,建议先检查CUDA版本与vLLM的兼容性,或查阅vLLM官方GitHub Issues。