使用EGS创建vLLM推理服务并运行性能测试

暗香疏影 创作者

我们下面教大家如何运行vllm大模型推理服务,这里以ECS带GPU的虚拟机(EGS)作为演示:
阿里云 - 使用vLLM镜像快速构建模型的推理环境

安装驱动和拉取vLLM镜像

首先,我们需要拉取vLLM镜像,该镜像包含vLLM, CUDA, Pytorch等相关依赖。阿里云EGS本身有这个镜像,我们需要登录容器镜像服务控制台,然后在左侧导航栏,单击制品中心。
在仓库名称搜索框,搜索vllm或egs, 找到egs/vllm即可。

图1

在创建ECS中,直接GPU实例上使用vLLM容器镜像,需要提前在该实例上安装Tesla驱动且驱动版本应为535或更高,建议购买GPU实例时,同步选中安装GPU驱动。

之后安装Docker,这里可以直接用linuxmirror安装docker。

然后安装nvidia-container-toolkit

1
2
3
4
5
6
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

设置Docker开机自启动并重启Docker服务

1
2
sudo systemctl enable docker 
sudo systemctl restart docker

拉取vLLM镜像

1
2
# docker pull <vLLM镜像地址>
docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.9.0.1-pytorch2.7-cu128-20250612

运行vLLM容器

1
2
3
4
5
6
sudo docker run -d -t --net=host --gpus all \
--privileged \
--ipc=host \
--name vllm \
-v /root:/root \
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.9.0.1-pytorch2.7-cu128-20250612

然后docker ps查看状态

运行模型

本测试以Qwen3-0.6B模型为例,展示使用vLLM的推理效果。

执行以下命令,安装git-lfs便于下载大语言模型。

1
2
apt install git-lfs
cd /root

执行以下命令,下载modelscope格式的Qwen3-0.6B模型。外国区域可以直接Huggingface。

1
2
3
# git lfs clone https://www.modelscope.cn/Qwen/Qwen3-0.6B.git
# git lfs clone 已替换为git clone, 不需要加lfs了。
git clone https://huggingface.co/Qwen/Qwen3-0.6B

执行以下命令,进入vLLM容器。

1
docker exec -it vllm bash

测试vLLM的在线推理测试效果

执行以下命令,启动vLLM推理服务

1
2
3
4
python3 -m vllm.entrypoints.openai.api_server \
--model /root/Qwen3-0.6B \
--trust-remote-code \
--tensor-parallel-size 1

图2
只需要看到Application Startup Complete,则说明vLLM服务启动成功。我们在另一个SSH里面进入容器后执行以下命令,测试推理效果。

1
2
3
4
5
6
7
8
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "/root/Qwen3-0.6B",
"messages": [
{"role": "system", "content": "你是个友善的AI助手。"},
{"role": "user", "content": "介绍一下什么是大模型推理。" }
]}'

图3

性能测试

1
2
3
git lfs install
# git lfs clone https://www.modelscope.cn/datasets/gliang1001/ShareGPT_V3_unfiltered_cleaned_split.git
git lfs clone https://github.com/vllm-project/vllm.git

进入容器后运行
python3 /root/vllm/benchmarks/benchmark_serving.py的方式已经不支持,只支持vllm bench serve的方式,且不支持ShareGPT。

1
2
3
4
5
6
7
vllm bench serve \
--model /root/Qwen3-0.6B \
--num-prompts 10 \
--dataset-name random \
--random-input-len 512 \
--random-output-len 4096 \
--max-concurrency 1

图4

我还继续保留以前使用的老命令用于参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pip install pandas datasets &&
python3 /root/vllm/benchmarks/benchmark_serving.py \
--backend vllm \
--model /root/llm-model/Qwen/QwQ-32B \
--served-model-name Qwen/QwQ-32B \
--sonnet-input-len 1024 \ # Maximum input length
--sonnet-output-len 4096 \ # Maximum output length
--sonnet-prefix-len 50 \ # Prefix length
--num-prompts 400 \ # Randomly select or process 400 prompts from the dataset for performance testing.
--request-rate 20 \ # Simulate a stress test of 20 concurrent requests per second, lasting 20 seconds, with a total of 400 requests.Evaluate the throughput and latency of the model service under load.
--port 8000 \
--trust-remote-code \
--dataset-name sharegpt \
--save-result \
--dataset-path /root/ShareGPT_V3_unfiltered_cleaned_split/ShareGPT_V3_unfiltered_cleaned_split.json

本次教程结束。

  • 标题: 使用EGS创建vLLM推理服务并运行性能测试
  • 作者: 暗香疏影
  • 创建于 : 2025-09-26 10:00:00
  • 更新于 : 2025-09-26 09:09:00
  • 链接: https://blog.pptcar.com/2025/09/26/2025-09-26-Using-EGS-vLLM-benchmark/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
使用EGS创建vLLM推理服务并运行性能测试