SGLang 推理服务部署:3 条路径与 2 个调优旋钮
【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang
你的团队这周要把一个 LLM 推理服务交给业务方。手里只有一台 24G 显存的机器,没人写过 Dockerfile,也没空折腾 K8s。这种情况下,先选对部署方式比纠结启动参数更省时间。SGLang 是一个面向大语言模型与多模态模型的高性能推理服务框架,靠 RadixAttention 前缀缓存、零开销 CPU 调度和连续批处理,从单张卡到分布式集群都能承接。下面按你的处境把路径拆开。
按处境选部署路径:验证、上线、集群各走各的
先按处境对号入座,路径选错后面全是返工。
只是快速验证的话,pip 或 uv 本地装就行,一条命令起服务,改完参数重启即生效,代价是换台机器环境要重配,适合还在调 prompt 和采样参数的阶段。要给业务上线,走 Docker 容器:依赖、CUDA 版本、模型缓存全部锁进镜像,重启和迁移都靠它,环境漂移基本不存在,出问题也更容易对照镜像版本排查。要上多机集群,除了容器还要 host 网络配 RDMA,或者直接用 K8s 编排多副本,此时重点在张量并行和专家并行的切分方式,而不是单卡参数。
主路径实战:Docker 容器化把服务跑起来
生产环境直接上容器,pip 留给做实验的。拉官方镜像,挂上 Hugging Face 缓存目录,暴露 30000 端口:
docker run -d --gpus all --shm-size 32g \ --ipc=host -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ -e "HF_TOKEN=<your-hf-token>" \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path <your-model> \ --host 0.0.0.0 --port 30000这一段在干什么:一条命令完成装环境、挂模型缓存、以 OpenAI 兼容接口暴露推理服务。仓库里 docker/compose.yaml 内置了健康检查和 GPU 预留,想省事就用docker compose up -d起。如果你选的是 pip 路线,差异只在安装那一步:
uv pip install --prerelease=allow sglang python3 -m sglang.launch_server --model-path <your-model> --port 30000装完即用,但 CUDA 版本和内核依赖都跟着本地环境走,排查问题时会先怀疑环境。
高并发调优:先压测,再动这三个参数
调优顺序是先压测出基线再动参数,顺序反了等于盲调。先按业务真实并发打一轮流量,把 P99 延迟和吞吐记下来:
python3 -m sglang.bench_serving \ --backend sglang \ --dataset-name random \ --random-input-len 1024 --random-output-len 1024 \ --num-prompts 100 --request-rate 10这一段在干什么:用随机数据集按指定请求速率压测,拿到调优前后的对比数字。基线有了之后,显存吃紧先降--mem-fraction-static 0.7,再考虑--kv-cache-dtype fp8_e5m2给 KV cache 瘦身;吞吐不够再调--chunked-prefill-size和--max-running-requests;多卡场景用--tp 2起张量并行。完整参数含义见 docs/docs/advanced_features/server_arguments.mdx,配置详情见那一份即可。
踩坑速查:OOM、CUDA_HOME、首包延迟
OOM、CUDA_HOME、首包延迟是部署阶段最高频的三个坑,按现象对号查最快。
启动即 OOM
现象:加载阶段就挂。根因:静态显存占比默认偏高,KV cache 被挤爆。解法:--mem-fraction-static 0.7,仍不够再叠--kv-cache-dtype fp8_e5m2。
pip 安装报 CUDA_HOME 未设置
现象:报 CUDA_HOME 未设置。根因:编译时找不到 CUDA 根目录。解法:export CUDA_HOME=/usr/local/cuda-<your-version>后重装。
首个请求延迟高
现象:服务就绪后第一条请求明显慢。根因:CUDA graph 未捕获、算子没预热。解法:启动后先发几条预热请求把 kernel 热起来。
上线前再用 bench_serving 按真实并发压一轮,把 P99 和吞吐写进变更单,比对着参数表猜更有依据。遇到复现不了的诡异问题,直接去项目仓库提 issue,版本、硬件和日志写清楚,社区响应很快。
【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考