ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

SGLang 部署完整指南:一条命令拉起服务,从安装到高并发调优

2026/9/2 14:41:28 拓冰建站 浏览量
SGLang 部署完整指南:一条命令拉起服务,从安装到高并发调优 SGLang 部署完整指南一条命令拉起服务从安装到高并发调优【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang这是一份 SGLang 部署实操教程用一条命令拉起模型推理服务讲清 pip、Docker 等五种安装路线的取舍覆盖 GPU 张量并行、CPU 专用镜像、内存与量化调优、Prometheus 监控接入和生产排障目标是让服务在你的硬件上既跑得快又稳得住。 快速启动 SGLang 服务器最短路径只有两步装包然后启动。在 Python 3.10 环境下执行uv pip install --prereleaseallow sglang python -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000装包时保留--prereleaseallowSGLang 的部分依赖在 PyPI 上只发布预发布版缺了这个参数会悄悄装到旧版本。服务起来后30000 端口就提供 OpenAI 兼容 API。安装路线选择按你的场景对号入座五种安装路线能力相同差别在适用场景和维护成本。拿不准就从 pip 开始你的场景推荐路线上手成本关键点单机快速验证、日常开发pip / uv 安装低两条命令装完即用详见安装文档要改内核代码、追最新 main 分支源码编译中clone 仓库gitcode 镜像地址https://gitcode.com/GitHub_Trending/sg/sglang后执行pip install -e python团队协作、生产部署Docker 部署低官方镜像锁定环境可复现、易迁移多节点大模型、高可用集群Kubernetes高仓库自带k8s-sglang-service.yaml单节点与k8s-sglang-distributed-sts.yaml多节点直接kubectl apply多云弹性伸缩、按量买卡SkyPilot中一份 YAML 描述模型与资源sky launch一条命令部署到 12 云平台并返回 API 端点SGLang Docker 部署生产环境的默认选择容器化最大的价值是这台机器能跑哪台都能跑。拉取官方镜像lmsysorg/sglang生产建议固定到不可变版本标签而非latest资源紧张时换体积更小约 40% 的-runtime变体核心参数含义docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env HF_TOKEN你的token --ipchost \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server --model-path 模型名 --host 0.0.0.0 --port 30000--gpus all把宿主机 GPU 透传进容器没有它容器里看不见卡--shm-size 32g --ipchost多进程张量并行靠共享内存通信默认 64MB 的/dev/shm会直接卡死必须显式放大-v ~/.cache/huggingface挂载模型缓存目录避免每次启动重新下载几十 GB 权重HF_TOKEN私有模型或高并发下载需要鉴权。镜像构建与编排文件都在 docker/ 目录compose.yaml 可作为服务化起点。SGLang GPU 配置FlashInfer 后端与张量并行默认情况下无需额外配置SGLang 自带 FlashInfer 注意力内核sm75 及以上显卡均可用它是目前默认且经过充分优化的后端显式写--attention-backend flashinfer只是把默认值摆上台面。真正要动手的是并行拆分。单卡放不下模型时用--tp Ntensor parallelism张量并行把每层权重按列/行切开分到 N 张卡上协同计算python -m sglang.launch_server --model-path 大模型 --tp 4为什么这么切权重切开后单卡显存压力除以 N但代价是每层前向都要一次卡间通信所以--tp取值要受限于 NVLink/PCIe 带宽跨机再叠加--nnodes做流水线扩展。MoE 大模型还可组合数据并行注意力与专家并行请求按 batch 分派到不同注意力单元、再由专家子组承接示意如下更多后端选项见硬件平台文档。SGLang CPU 部署Intel Xeon 专用镜像CPU 推理只建议走专用路线SGLang 针对第 4 代及更新 Xeon 的 AMX 指令做了优化对应镜像标签以xeon结尾或从docker/xeon.Dockerfile自行构建。启动与 GPU 容器有两处关键差异docker run -it --privileged --ipchost --networkhost \ -v ~/.cache/huggingface:/root/.cache/huggingface \ -p 30000:30000 -e HF_TOKEN你的token \ lmsysorg/sglang:v0.5.13-xeon /bin/bash--privileged容器需要访问 AMX 等指令集特性普通权限下性能回落到通用路径--networkhostCPU 多进程通信对延迟敏感host 网络省去 NAT 开销镜像差异CPU 镜像不带 CUDA 栈替换为 oneMKL 等 CPU 推理依赖因此不能拿 GPU 镜像将就跑 CPU。Llama、Qwen、DeepSeek 系列在 CPU 上均有优化支持细节见CPU 服务器文档。⚙️ 高并发调优内存不足、延迟高时拧哪个参数把常见性能问题翻译成旋钮对照着调现象旋钮预期效果启动即 OOM显存不够--mem-fraction-static 0.7下调静态预留占比默认更激进给权重与 KV cache 留足余量反之显存富余可调高换取更大的 KV cache权重和 KV cache 吃满显存并发上不去--quantization fp8--kv-cache-dtype fp8_e5m2把权重和缓存都压到 8 位如同给仓库做压缩显存占用近乎减半可用批大小翻倍峰值并发压垮服务--max-running-requests N限定同时在跑的请求数上限超出部分排队而非挤爆显存长 prompt 造成首 token 延迟尖刺--chunked-prefill-size 4096把长 prefill 切成固定长度的小块与 decode 交错执行削平延迟毛刺decode 吞吐偏低、CPU 成为瓶颈--enable-cuda-graph --enable-torch-compileCUDA 图把 kernel 发射序列录制成录像回放torch.compile 做算子融合两者都砍掉每步的启动开销完整参数说明见服务器参数参考量化细节见量化文档。盯住服务Prometheus 接入与三个核心指标启动时加--enable-metrics服务即在/metrics暴露 Prometheus 格式指标。抓取配置只需指向服务端口完整模板在 examples/monitoring/docker-compose up -d一键起 Prometheus Grafanascrape_configs: - job_name: sglang static_configs: - targets: [127.0.0.1:30000]看板可以画很多但最值得盯的只有三个sglang:token_usage——KV cache 占用比例。持续贴近 1 意味着新请求只能排队或被抢占是扩容或量化信号sglang:cache_hit_rate——前缀缓存命中率。多轮对话、共享 system prompt 的场景下它决定了大量 prefill 是否被跳过偏低时先查请求格式是否稳定复用前缀sglang:time_to_first_token_seconds——首 token 延迟分布。它直接对应用户体感结合队列长度看即可区分慢在排队还是慢在计算。部署排障速查报错现象可能原因处理动作OSError: CUDA_HOME environment variable is not set构建工具找不到 CUDA 根目录export CUDA_HOME/usr/local/cuda-你的版本或先装好 FlashInfer 再装 SGLang启动阶段 GPU OOM权重 KV cache 超出显存降--mem-fraction-static或上 FP8 量化见上节旋钮表老显卡上 FlashInfer 相关崩溃计算能力低于 sm75后端不支持改用--attention-backend triton --sampling-backend pytorch容器内多进程通信异常、死锁共享内存不足--shm-size 32g并加--ipchost容器起不来、设备找不到未透传 GPU 或宿主缺 nvidia-container-toolkit加--gpus all在宿主机安装并验证 toolkit请求能进但首 token 明显变慢前缀缓存失效或长 prompt 未分块查cache_hit_rate确认--chunked-prefill-size生效上生产前的检查清单镜像/版本固定到不可变标签如v0.5.x不用浮动的latest配置健康检查与自动重启K8s liveness 探针或 systemd restartPrometheus 抓取已生效token_usage、cache_hit_rate、TTFT 三条曲线进看板用python -m sglang.bench_serving --backend sglang --dataset-name random --random-input-len 1024 --random-output-len 1024 --num-prompts 100 --request-rate 10压测基线留档HF Token 与模型缓存持久化避免重启后重新拉权重压测峰值下验证排队与拒绝策略符合预期并发上限、超时配置小结SGLang 部署的核心是先选对安装路线再按硬件特性配置并行与内存最后用指标闭环验证。建议继续阅读服务器参数参考、生产指标说明与硬件平台文档。【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考