SGLang GPU 利用率优化:量化、批处理与多卡并行的 6 个实战场景

发布时间:2026/10/21 17:28:16

SGLang GPU 利用率优化:量化、批处理与多卡并行的 6 个实战场景 SGLang GPU 利用率优化量化、批处理与多卡并行的 6 个实战场景【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang用 SGLang 部署 LLM 推理服务时GPU 经常半闲置利用率上不去请求排队KV 缓存占着显存却被反复回收。本文给出一条最短的跑通路径再按单卡、多卡、长文本、高并发四个场景逐个拆解该动哪些参数最后附参数速查表和常见报错的处置方法。 5 分钟跑通一个推理服务先建立信心一条命令起服务一条命令发请求。pip install --upgrade pip pip install -e python # 在仓库根目录执行或 pip install sglang python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --port 30000执行后应看到终端打印The server is fired up and ready to roll!表示服务就绪。另开终端向http://127.0.0.1:30000/generate发一条 POST 请求body 里放一个text字段返回包含生成内容的 JSON 就算验证通过。小模型、低负载时利用率数据没什么参考价值真正的优化空间在下面的四个场景里。 单卡省显存把权重和 KV 缓存都压小单卡场景的核心矛盾是显存不够分模型权重、KV 缓存、激活值要共用一块显存。两件事最有用。权重量化。优先选离线量化好的现成权重GPTQ、AWQ、FP8 检查点加载时 SGLang 会自动读取模型配置里的量化信息不需要额外参数python3 -m sglang.launch_server \ --model-path 你的AWQ或FP8检查点 \ --port 30000只有当你手里只有高精度原始权重时才用--quantization fp8做在线量化让 SGLang 在加载时动态计算缩放因子。注意已经量化的检查点不要再加--quantization两者叠加会出错。KV 缓存量化。给--kv-cache-dtype fp8_e4m3加一个参数KV 缓存体积直接减半同显存下能多跑一倍长度的上下文。代价是精度有轻微损失长文本任务建议先对比几组输出再决定是否开启。验证方法启动日志里找max_total_num_tokens这一行它代表 KV 缓存池能容纳的 token 总量。量化前后对比这个数字涨了多少就说明并发能力多了多少。️ 多卡并行怎么配先分清两种并行TP张量并行是把一个模型拆到多张卡上算解决单卡装不下DP数据并行是每个 worker 各跑一份完整模型解决单卡装得下但吞吐不够。模型显存超过单卡容量 → 上 TP--tp 2、--tp 4逐档往上加模型能装进单卡 → 优先 DP内存充裕时吞吐明显更好MoE 模型 → 再加专家并行--ep-size让不同卡承载不同专家配合--moe-runner-backend triton使用。# 装不下张量并行 python3 -m sglang.launch_server --model-path 模型 --tp 4 --port 30000 # 装得下数据并行配合网关做负载均衡 python3 -m sglang_router.launch_server --model-path 模型 --dp 4 --port 30000执行后应看到每卡显存占用大致均衡。验证方法nvidia-smi里各卡利用率差值小于 20%说明切分合理某张卡明显偏低通常说明 TP 切法或路由有问题。 长文本别让一次 prefill 把显存打爆长 prompt 的请求在进入 decode 前会先做一次性 prefilltoken 数越多这一瞬的激活值越大OOM 最常发生在这里。对策是把 prefill 切成小块python3 -m sglang.launch_server --model-path 模型 \ --chunked-prefill-size 4096 --mem-fraction-static 0.85 --port 30000--chunked-prefill-size限制单个 prefill 块的 token 数OOM 时从 8192 往 4096、2048 降。代价是长 prompt 的首 token 延迟略升但换来的是稳定。--mem-fraction-static决定权重 KV 缓存池占显存的比例公式(权重KV池)/显存总量。官方调法看启动日志里available_gpu_mem——落在 5~8 GB 区间说明分配合适剩 10 GB 以上就往上加 0.01剩得太少则往下调防止后面 OOM。⚡ 高并发让调度器别留手请求密集到达时有两个参数直接决定吞吐。--schedule-conservativeness默认 1.0控制调度器敢不敢继续收新请求日志里token usage长期低于 0.9、且#queue-req 0→ 调度器太保守降到 0.3反复出现KV cache pool is full. Retract requests.→ 太激进升到 1.3。偶尔出现约每分钟一次属正常。--max-running-requests是同时在跑的请求上限。decode 阶段 OOM 时优先降它比降mem-fraction-static损失小。调参结束后建议压测一轮确认gen throughput (token/s)和token usage都达到预期再上线。 关键参数速查表参数推荐取值一句话作用--quantization fp8仅高精度原始权重时用加载时在线量化权重省显存--kv-cache-dtype fp8_e4m3长上下文场景开KV 缓存体积减半换更高并发--chunked-prefill-size4096OOM 时降到 2048把长 prefill 切块削平显存峰值--mem-fraction-static0.85 起步日志余量 5~8 GB 为准权重 KV 池的显存占比上限--max-running-requests按 decode 阶段余量下调限同时在跑的请求数--schedule-conservativeness0.3~1.3默认 1.0调度器收/放请求的松紧程度--tp单卡装不下才用张量并行拆分模型--dp单卡装得下时优先数据并行提吞吐--ep-sizeMoE 模型卡数整除专家并行分摊专家计算--attention-backend不指定由 SGLang 自动选选 FA3/FlashInfer/Triton 等注意力内核--enable-metrics生产环境必开暴露 Prometheus 指标注意力后端不用死记不指定时 SGLang 会按硬件和模型结构自动挑最快的。需要 MLA 或滑窗注意力时再按 docs/docs/advanced_features/attention_backend.mdx 的支持矩阵显式指定。️ 高频报错与处置现象处理动作OSError: CUDA_HOME environment variable is not set导出CUDA_HOME/usr/local/cuda-你的版本后重启prefill 阶段 OOM--chunked-prefill-size降到 4096/2048--mem-fraction-static降到 0.8decode 阶段 OOM降--max-running-requests再考虑降--mem-fraction-static加载量化检查点时报 quantization 冲突去掉--quantization预量化模型不需要在线量化KV cache pool is full. Retract requests.刷屏--schedule-conservativeness升到 1.3端口被占用30000/9090/3000换端口或lsof -i :30000找出占用进程 落地建议个人开发机小模型 全默认参数跑通即可别过早调参要省显存就加--kv-cache-dtype fp8_e4m3。小团队固定一条基线命令模型路径 --mem-fraction-static 0.85--enable-metrics之后只允许一次动一个参数并记录吞吐变化避免多人同时改配置互相干扰。生产环境必开--enable-metrics接上 examples/monitoring 里现成的 Prometheus Grafana 栈cd examples/monitoring docker compose up即可盯住 token usage、队列长度和 GPU 利用率三条曲线按上表的阈值做增减。延伸阅读量化方法全表见 docs/docs/advanced_features/quantization.mdx调参判断依据日志怎么看见 docs/docs/advanced_features/hyperparameter_tuning.mdx。今天就先做一件事把你当前服务启动命令里加上--enable-metrics用curl http://127.0.0.1:30000/metrics拉一次指标对照上表把token usage和#queue-req两个数字记下来这就是你下一步调参的起点。【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/21 2:50:33

海龟交易法则Python实现:完整策略代码与量化回测指南

量化金融这个系列走到第 100 篇,这次我们完整落地一个经典策略:海龟交易法则的 Python 实现。网上讲海龟法则的文章很多,但多数停留在“进场突破 20 日高点、止损 2ATR”这种概念层面,缺少一份能直接跑回测、能看到净值曲线、能输…

2026/10/21 0:28:05

OpenSEO 竞品分析技能完整指南:SKILL.md 工作原理拆解

OpenSEO 竞品分析技能完整指南:SKILL.md 工作原理拆解 【免费下载链接】open-seo Open source alternative to Semrush and Ahrefs 项目地址: https://gitcode.com/GitHub_Trending/op/open-seo OpenSEO 竞品分析技能(Competitor Analysis Agent …

2026/10/21 17:26:38

uniapp微信商城模板全解析:从架构到支付二次开发

简介:基于 uni-app 开发的微信商城小程序通用模板,适合小程序入门者、前端学习者及需要快速搭建商城原型的学生或开发者。压缩包共 490 个文件,体积仅 2.04MB,以 275 个 JS 逻辑文件、117 个 Vue 页面组件为核心,辅以 …

2026/10/21 17:26:38

RK3588与AX650N边缘AI开发板YOLOv5s实测对比与踩坑记录

做边缘计算项目这五年,手头经手的AI开发板少说也有十几块了,但真正让我愿意专门写一篇测试报告的,还是瑞芯微RK3588和爱芯元智AX650N这对组合。这俩平台的定位高度重叠,都是ARM核心加NPU的SoC方案,目标场景基本就是边缘…

2026/10/21 17:26:38

基于Spring Boot和Vue的旅游网系统:毕业设计全栈开发实战

每年到了毕业设计选题的季节,总有一批计算机专业的同学在“做什么题目”这件事上反复纠结。管理系统太普通,电商平台太烂大街,纯算法又怕做不完。如果你也处在这个阶段,我的建议很直接:考虑一个基于Spring Boot加Vue的…

2026/10/21 17:26:38

贝叶斯优化+Transformer:Matlab单变量时序预测实战指南

做了快两年时序预测的工程落地,我最大的感受是:只要还在用“固定结构 手工调参”的思路,单变量时序预测就永远像开盲盒。最近把一个设备监测项目彻底重构了一遍,核心方案就是标题里写的 BO 贝叶斯优化 Bayes-Transformer&#x…

2026/10/21 17:26:38

定积分求旋转体体积:圆盘法与壳层法的本质与实操指南

定积分算旋转体体积,是我见过最容易被学生“背公式”背废的一个知识点。大学里讲到这里,很多人记住的是∫πf(x)dx这样几个固定套路,题目一换、轴一改、函数一复杂,立刻就不会了。但说实话,这块反而是微积分里最能培养…

2026/10/21 17:21:37

Token级策略梯度:生成式模型强化学习的逐步优化指南

1. 为什么Token级策略梯度会进入视野 我第一次做生成式模型的强化学习微调时,用的是最朴素的写法:模型把整条回复生成完,奖励模型给一个总分数,然后把这个分数乘到整条序列所有token的log概率梯度上,更新一次参数。刚开…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/21 0:00:35

交通流仿真实战:IDM跟驰与MOBIL换道模型参数调优与避坑指南

简介:这份资源是面向交通工程学习者与Python开发者的微观交通流仿真项目,核心实现智能驾驶模型(IDM)下的车辆跟驰与换道行为,可用于理解速度、密度与流量之间的动态关系,适合具备Python基础、希望深入交通模…

2026/10/21 0:00:35

揭穿智能体表面顺从:用追踪代码重建任务执行确定性

1. 表面顺从不是智能体的“礼貌”,而是任务执行链路上的隐性断点最近在调试一个跨平台长周期任务调度系统时,我反复遇到一种令人困惑的现象:智能体在用户指令发出后,几乎秒级响应“已收到”“正在处理”“请稍候”,UI上…

2026/10/21 0:00:35

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑