首页/AI/大模型部署与运维速查/推理服务栈分层总览
部署形态与选型43 条

推理服务栈分层总览

从硬件到应用,一条推理服务链路通常分为 GPU 硬件层、驱动与 CUDA 运行时层、推理引擎层、网关层和应用层;排障与选型都按这五层逐层定位,能快速缩小问题范围。

推理服务栈的分层

一条推理服务链路可以拆成五层:GPU 硬件层、驱动与 CUDA 运行时层、推理引擎层、网关层、应用层。分层不是为了好看,而是为了排障时能快速缩小范围:报错信息、命令行与指标分别属于哪一层,决定了下一步该看日志还是看配置。选型同样按层推进,避免同时改动多层导致问题无法归因。

五层与代表组件

硬件层GPU 与卡间互联,代表命令 nvidia-smi、拓扑查询
运行时层NVIDIA 驱动、CUDA 运行时、cuDNN 与 PyTorch
引擎层vLLM、SGLang、TGI、llama.cpp 等推理框架
网关层Nginx 或 LiteLLM:鉴权、限流、负载均衡
应用层对话前端、业务后端、检索增强管线

逐层确认顺序

逐层确认顺序
nvidia-smi                                   # 1 硬件与驱动:卡在不在、显存够不够
python -c "import torch; print(torch.cuda.is_available())"   # 2 运行时能否看到设备
curl http://127.0.0.1:8000/health            # 3 引擎进程是否存活
curl http://127.0.0.1:8000/v1/models         # 4 引擎接口与模型名是否正常
curl https://your-domain/v1/models           # 5 网关转发是否通(换域名再验一次)

每层看什么

层主要观测手段典型异常
硬件层设备列表、显存占用、温度与降频原因掉卡、显存被占用、持续降频
运行时层框架能否识别设备、版本是否匹配识别不到设备、库版本不兼容
引擎层启动日志、健康端点、KV 水位与排队数加载失败、显存不足、请求排队
网关层访问日志、上游探活、超时与状态码分布转发 502、流式被缓冲、超时
应用层业务日志、请求编号串联的调用链参数拼错、模板错配、上下文超长

分层排障的用法

  • 先用本机地址验证引擎、再用域名验证网关:两条链路分开测,才能判断问题在哪一层
  • 确认故障层之后再深入该层日志:同时改动多层会让因果无法判断
  • 扩容与新版本上线按层核对:镜像、权重、启动参数与网关路由分别有记录
  • 每个层留一个最小验证命令:值班时照着顺序执行,不依赖个人经验
  • 容量问题自下而上算:先看显存与 KV 池,再看网关连接数,避免只盯一个指标
运行时层是最容易漏检的一层:设备识别失败时,引擎报错往往指向模型文件或显存,实际根因在驱动版本或容器透传。
网关层与引擎层要用不同入口验证:网关用域名、引擎用环回地址,同一台机器上两者表现不同能直接把范围缩到网关配置或后端服务。

易错点

  • 跳过运行时检查直接怀疑引擎:设备识别为假时问题通常在驱动或容器透传
  • 只用一个入口测试:域名与环回地址混用,无法区分是转发问题还是服务问题
  • 同时改多层配置:故障恢复后不知道哪一项起了作用,下次遇到同样问题仍要重新试
  • 把应用层错误当成推理故障:参数拼错与模板错配会表现为输出异常,实际与引擎无关
  • 分层没有记录:环境、镜像与参数没有版本化,扩容与回滚时无法复现当时状态

数据来源与参考

  • vLLM 官方文档(docs.vllm.ai)
  • NVIDIA 官方文档(docs.nvidia.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌