4090-8卡服务器-生产力(读取:813tokens/s,输出:101tokens/s)-Qwen3.6-27B-AWQ部署和测试报告
附:4服务模型 API设置测试 流程
0. 前期部署准备流程(依赖安装 + 模型下载 + 校验脚本)
0.1 整体部署说明
本次推理部署采用离线纯净部署方案,基于Linux服务器、Conda虚拟环境隔离,全程锁定依赖版本、固化环境变量、内网拷贝模型,无外网不稳定下载,可1:1复刻生产环境。本章完整记录:环境搭建、安装命令、依赖版本、环境变量、模型拷贝、文件校验、依赖自检脚本。
0.2 环境依赖安装流程
0.2.1 创建隔离虚拟环境
|
bash |
0.2.2 基础深度学习依赖安装
|
bash |
0.2.3 推理&量化专项依赖安装
|
bash |
0.2.4 生产固化依赖版本表(不可变更)
|
依赖库 |
固化版本 |
用途说明 |
|
vllm |
0.20.2 |
推理引擎、压测工具、分布式张量并行 |
|
torch |
2.5.1 |
底层CUDA张量运算,适配CUDA12.1 |
|
autoawq |
0.2.7 |
解析AWQ4bit量化权重 |
|
transformers |
4.48.3 |
模型结构读取、分词器加载 |
|
marlin-kernels |
最新稳定版 |
4090显卡专属量化高速内核 |
0.3 系统环境变量配置(永久写入)
针对双卡4090硬件限制(无P2P直通),专门配置环境变量规避警告、稳定通信、限制显卡占用。
|
bash |
- NCCL_P2P_DISABLE=1:关闭显卡P2P检测,解决4090不支持SymmMem报错。
- CUDA_VISIBLE_DEVICES=0,1:强制只使用两张显卡,防止串卡。
- VLLM_SLEEP_WHEN_IDLE:空闲自动降频,降低服务器功耗与温度。
0.4 模型下载、拷贝与校验流程
0.4.1 模型基础信息
- 模型名称:Qwen3.6-27B-AWQ
- 存放路径:/data/models/Qwen3.6-27B-AWQ
- 模型格式:safetensors(8分片权重)
- 磁盘占用:20.35GB
- 量化方式:4bit-AWQ + Marlin硬件加速
0.4.2 模型拷贝流程(内网离线)
本服务器不使用外网Huggingface下载,采用ModelScope资源拷贝,保证模型完整、无损坏、无限速。
|
bash |
0.4.3 模型人工校验步骤
- 权重分片:共8个safetensors文件,分片齐全无缺失。
- 文件系统:服务器磁盘格式XFS,读写稳定,无网络磁盘IO延迟。
- 加载校验:vLLM启动无权重报错、无哈希校验失败。
- 内核识别:自动识别AWQ&Marlin,启用专用量化加速内核。
0.5 生产级依赖自检脚本(可直接复用)
为方便后期运维环境校验,编写一键依赖检查脚本,检测CUDA、Torch、vLLM、AWQ依赖是否齐全、版本是否匹配。
|
bash |
使用方式:赋予权限、一键执行,快速排查环境异常。
|
bash |
1. 测试基本信息
1.1 硬件环境
|
硬件项目 |
参数详情 |
|
GPU型号 |
NVIDIA RTX 4090 24GB |
|
GPU数量 |
2张(双卡张量并行) |
|
系统内存 |
512GB(大内存无加载瓶颈) |
|
硬盘文件系统 |
XFS |
1.2 软件环境
|
软件项目 |
版本/说明 |
|
推理框架 |
vLLM 0.20.2 |
|
量化算法 |
AWQ + Marlin 高速内核 |
|
通信后端 |
NCCL 2.28.9 |
|
KV缓存格式 |
FP8(显存压缩) |
|
Attention后端 |
FlashInfer |
2. 压测命令与核心参数说明
2.1 完整压测命令
|
bash |
2.2 关键长度参数通俗详解(重点)
为方便运维人员理解,采用笔记本生活化比喻,直白区分三个长度参数:
2.2.1 max-model-len = 4096(最大上下文窗口)
比喻:一本总共4096页的笔记本(硬件天花板)
模型最大记忆上限,历史对话+提问+回答全部加起来不能超过4096token,超出自动截断前文。
2.2.2 input-len = 1024(压测输入长度)
比喻:你写给AI的题目,占用1024页
压测固定输入长文本,模拟真实业务长文案、长文档、长问题输入。
2.2.3 output-len = 1024(压测生成长度)
比喻:AI写出的答案,占用1024页
强制模型必须生成1024token,不允许提前结束,用于测试长文本生成能力。
2.3 三者组合关系
4096(总容量) = 1024输入 + 1024输出 + 预留缓存空间
中文通用换算:1token ≈ 1.5~2个汉字
- 输入1024token ≈ 2000汉字
- 输出1024token ≈ 2000汉字
- 最大上下文 ≈ 8000汉字
2.4 其余核心参数说明
|
参数 |
取值 |
作用说明 |
|
tensor-parallel-size |
2 |
双卡均分权重,降低单卡显存压力 |
|
gpu-memory-utilization |
0.75 |
显存安全上限,杜绝OOM |
|
kv-cache-dtype |
fp8 |
KV缓存压缩,节省显存、提升吞吐 |
|
enforce-eager |
启用 |
关闭CUDAGraph,换取工业级稳定性 |
3. 部署流程与日志关键记录
3.1 模型加载阶段
- 内核自动适配:启用MarlinLinearKernel、FlashInfer注意力内核。
- 权重加载耗时:4.80s,完整启动耗时6.25s。
- 模型显存占用:9.98GiB。
- KV缓存能力:可用缓存6.14GiB,最大缓存Token174,762,理论并发42.67路。
3.2 无害告警日志汇总
本次所有警告无报错、不影响生产,全部为硬件/环境兼容提示:
- NIXL is not available:分布式高速传输组件未安装,单节点无影响。
- SymmMemCommunicator:4090算力架构8.9不支持对称通信,自动降级NCCL。
- Custom allreduce disabled:无显卡P2P直连,自动关闭自定义通信。
4. 实测性能结果与数据解析
4.1 核心稳定性能指标
|
性能指标 |
实测数值 |
说明 |
|
Prompt编码吞吐(读题速度) |
813.1 tokens/s |
批量并行编码,速度极高,非生成速度 |
|
Generation生成吞吐(真实输出) |
74~101 tokens/s |
用户真实感知生成速度,优秀水平 |
|
稳定并发数 |
8 reqs |
无排队、无卡顿 |
|
KV缓存使用率 |
12.5%~15.7% |
显存余量极大 |
4.2 关键数据通俗解释
- 813 tokens/s:输入编码速度,GPU一次性批量读完长文本,所以速度极高。
- 74~101 tokens/s:真实逐字生成速度,自回归生成,为用户实际体验速度。
5. 优缺点总结
5.1 优点
- 部署极度稳定,无崩溃、无OOM。
- FP8+AWQ显存控制优秀,完美适配双4090。
- 生成吞吐75+ token/s,满足企业生产力场景。
- 环境全部固化,可复刻、可迁移。
5.2 现存短板
- 禁用CUDAGraph,牺牲少量极致速度换取稳定性。
- 4090硬件无P2P,通信性能轻微受限。
6. 生产优化建议
- 开启前缀缓存:添加 --enable-prefix-caching,重复对话提速30%+。
- 显存利用率可调至0.80,提升最大并发。
- 挂机生产长期运行保持 --enforce-eager 开启,保证稳运行。
7. 最终测试结论
本次在双RTX4090服务器完成Qwen3.6-27B-AWQ工业级压测,采用vLLM推理、AWQ量化、FP8 KV缓存、双卡张量并行。环境纯净、依赖固化、模型校验完整、全程无报错无溢出。
实测输入编码吞吐813.1tokens/s,真实生成吞吐稳定101tokens/s,8路并发平稳运行,显存余量充足。
结论:整套部署方案成熟、稳定、可直接投产,所有参数永久固化,作为本服务器官方生产力部署方案。
测试人员:技术测试组
测试时间:2026年05月12日
附:
8 卡 4090 服务器 4 服务设置测试流程
一、环境基础信息
- 服务器:8 卡 RTX 4090
- 模型:Qwen3.6-27B-AWQ
- 虚拟环境路径:/opt/venv/vllm
- 内网网卡:enp194s0f0
- 内网 IP:[10.255.254.44](10.255.254.44)
- 公网 IP:[218.31.112.74](218.31.112.74)
- 对外端口:2196
- 后端内网端口:8000、8001、8002、8003
- 统一 API Key:sk-qwen-27b-lb-2026
- 架构:4 个 vLLM 后端服务 + Nginx 负载均衡 + 反向代理 + 标准 OpenAI 接口对外
二、前期问题排查与根因
- 现象:vLLM 服务运行 2 小时自动全部退出
- 报错日志:Broken pipe、TCPStore server has shut down too early、NCCL 通信异常
- 根因:
- vLLM 多卡分布式随机选错网卡 / IP
- NCCL/TCPStore 通信链路不稳定
- 未固定内网网卡与通信 IP,长时间空闲连接断裂
- 解决方案:
- 强制绑定固定内网网卡 enp194s0f0
- 固定通信内网 IP [10.255.254.44](10.255.254.44)
- 更换分布式后端为 mp 规避 NCCL 不稳定
- Nginx 代理后端改为内网 IP 端口
三、系统环境变量永久配置
|
bash |
四、进入虚拟环境并加载运行变量
|
bash |
五、单终端一键启动 4 个 vLLM 后端服务
|
bash |
六、查看 vLLM 服务是否正常运行
|
bash |
七、Nginx 负载均衡 + 反向代理配置
1. 写入配置文件
|
bash |
2. 校验配置并重启 Nginx
|
bash |
3. 防火墙放行对外端口
|
bash |
八、服务连通性测试命令
1. 查看模型列表测试
|
bash |
2. 对话接口测试示例
|
bash |
九、对外正式服务接入信息
- 接口基础地址:http://218.31.112.74:2196/v1
- API Key:sk-qwen-27b-lb-2026
- 模型名称:/data/models/Qwen3.6-27B-AWQ
- 接口标准:兼容 OpenAI 格式,支持 ChatBox、各类调用客户端
十、部署稳定保障说明
- 固定内网网卡与 IP,杜绝 NCCL/TCPStore 通信断裂
- 改用 mp 分布式执行后端,规避多卡随机崩溃
- 4 个后端服务负载均衡,自动分流
- 统一对外端口,内网服务隔离更安全
- 解决长时间运行自动退出问题,可 7×24 小时稳定提供服务
- 服务无人值守部署
(开机自启 + 崩溃自动重启)
1、停止原有手动服务
|
bash
sleep 3 ps -ef | grep vllm |
2、创建 4 个 systemd 托管服务文件
1. 创建 vllm-8000 服务
|
Bash
[Unit] Description=vLLM Service 8000 After=network.target [Service] User=hmtsgpu WorkingDirectory=/home/hmtsgpu Environment="PATH=/opt/venv/vllm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" Environment="VLLM_SLEEP_WHEN_IDLE=1" Environment="VLLM_USE_DEEP_GEMM=0" Environment="VLLM_USE_FLASHINFER_MOE_FP16=1" Environment="VLLM_USE_FLASHINFER_SAMPLER=0" Environment="OMP_NUM_THREADS=4" Environment="VLLM_USE_MODELSCOPE=true" Environment="VLLM_API_KEY=sk-qwen-27b-lb-2026" Environment="NCCL_SOCKET_IFNAME=enp194s0f0" Environment="GLOO_SOCKET_IFNAME=enp194s0f0" Environment="VLLM_HOST_IP=10.255.254.44" Environment="CUDA_VISIBLE_DEVICES=0,1" ExecStart=/opt/venv/vllm/bin/vllm serve /data/models/Qwen3.6-27B-AWQ \ --trust-remote-code \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.80 \ --max-model-len 262144 \ --kv-cache-dtype fp8 \ --disable-custom-all-reduce \ --enforce-eager \ --port 8000 \ --host 10.255.254.44 \ --distributed-executor-backend mp \ --api-key sk-qwen-27b-lb-2026 Restart=always RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF |
2. 创建 vllm-8001 服务
|
Bash
[Unit] Description=vLLM Service 8001 After=network.target [Service] User=hmtsgpu WorkingDirectory=/home/hmtsgpu Environment="PATH=/opt/venv/vllm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" Environment="VLLM_SLEEP_WHEN_IDLE=1" Environment="VLLM_USE_DEEP_GEMM=0" Environment="VLLM_USE_FLASHINFER_MOE_FP16=1" Environment="VLLM_USE_FLASHINFER_SAMPLER=0" Environment="OMP_NUM_THREADS=4" Environment="VLLM_USE_MODELSCOPE=true" Environment="VLLM_API_KEY=sk-qwen-27b-lb-2026" Environment="NCCL_SOCKET_IFNAME=enp194s0f0" Environment="GLOO_SOCKET_IFNAME=enp194s0f0" Environment="VLLM_HOST_IP=10.255.254.44" Environment="CUDA_VISIBLE_DEVICES=2,3" ExecStart=/opt/venv/vllm/bin/vllm serve /data/models/Qwen3.6-27B-AWQ \ --trust-remote-code \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.80 \ --max-model-len 262144 \ --kv-cache-dtype fp8 \ --disable-custom-all-reduce \ --enforce-eager \ --port 8001 \ --host 10.255.254.44 \ --distributed-executor-backend mp \ --api-key sk-qwen-27b-lb-2026 Restart=always RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF |
3. 创建 vllm-8002 服务
|
Bash
[Unit] Description=vLLM Service 8002 After=network.target [Service] User=hmtsgpu WorkingDirectory=/home/hmtsgpu Environment="PATH=/opt/venv/vllm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" Environment="VLLM_SLEEP_WHEN_IDLE=1" Environment="VLLM_USE_DEEP_GEMM=0" Environment="VLLM_USE_FLASHINFER_MOE_FP16=1" Environment="VLLM_USE_FLASHINFER_SAMPLER=0" Environment="OMP_NUM_THREADS=4" Environment="VLLM_USE_MODELSCOPE=true" Environment="VLLM_API_KEY=sk-qwen-27b-lb-2026" Environment="NCCL_SOCKET_IFNAME=enp194s0f0" Environment="GLOO_SOCKET_IFNAME=enp194s0f0" Environment="VLLM_HOST_IP=10.255.254.44" Environment="CUDA_VISIBLE_DEVICES=4,5" ExecStart=/opt/venv/vllm/bin/vllm serve /data/models/Qwen3.6-27B-AWQ \ --trust-remote-code \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.80 \ --max-model-len 262144 \ --kv-cache-dtype fp8 \ --disable-custom-all-reduce \ --enforce-eager \ --port 8002 \ --host 10.255.254.44 \ --distributed-executor-backend mp \ --api-key sk-qwen-27b-lb-2026 Restart=always RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF |
4. 创建 vllm-8003 服务
|
Bash
[Unit] Description=vLLM Service 8003 After=network.target [Service] User=hmtsgpu WorkingDirectory=/home/hmtsgpu Environment="PATH=/opt/venv/vllm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" Environment="VLLM_SLEEP_WHEN_IDLE=1" Environment="VLLM_USE_DEEP_GEMM=0" Environment="VLLM_USE_FLASHINFER_MOE_FP16=1" Environment="VLLM_USE_FLASHINFER_SAMPLER=0" Environment="OMP_NUM_THREADS=4" Environment="VLLM_USE_MODELSCOPE=true" Environment="VLLM_API_KEY=sk-qwen-27b-lb-2026" Environment="NCCL_SOCKET_IFNAME=enp194s0f0" Environment="GLOO_SOCKET_IFNAME=enp194s0f0" Environment="VLLM_HOST_IP=10.255.254.44" Environment="CUDA_VISIBLE_DEVICES=6,7" ExecStart=/opt/venv/vllm/bin/vllm serve /data/models/Qwen3.6-27B-AWQ \ --trust-remote-code \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.80 \ --max-model-len 262144 \ --kv-cache-dtype fp8 \ --disable-custom-all-reduce \ --enforce-eager \ --port 8003 \ --host 10.255.254.44 \ --distributed-executor-backend mp \ --api-key sk-qwen-27b-lb-2026 Restart=always RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF |
三、加载服务并设置开机自启
|
bash sudo systemctl daemon-reload sudo systemctl enable vllm-8000 sudo systemctl enable vllm-8001 sudo systemctl enable vllm-8002 sudo systemctl enable vllm-8003 |
四、一键启动全部 4 个服务
|
bas sudo systemctl start vllm-8000 sudo systemctl start vllm-8001 sudo systemctl start vllm-8002 sudo systemctl start vllm-8003 |
五、查看服务运行状态
|
bash sudo systemctl status vllm-8000 sudo systemctl status vllm-8001 sudo systemctl status vllm-8002 sudo systemctl status vllm-8003 |
六、无人值守核心能力说明
- 服务器开机 → 4 个 vLLM 服务自动启动
- 服务异常崩溃 → 5 秒自动重启
- 关闭终端 / 断开连接 → 服务不受影响
- 长时间运行 → 稳定不掉线、不自动退出
- Nginx + 负载均衡 + 公网访问永久可用
七、日常运维命令
|
bash # 查看单个服务状态 sudo systemctl status vllm-8000 # 重启单个服务 sudo systemctl restart vllm-8000 # 重启全部 4 个服务 sudo systemctl restart vllm-8000 vllm-8001 vllm-8002 vllm-8003 # 查看实时日志sudo journalctl -u vllm-8000 -f |
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)