模型上线后请求激增时,推理算力扩容的核心答案是:构建“预测式容量规划 + 弹性资源池 + 切流灰度”的三层机制,而不是等CPU被打满再买机器。
很多团队在模型上线前夜还在纠结“该买几张卡”,上线后一看监控曲线陡得像涨停板,立刻慌神,其实推理算力的扩容,本质是在延迟SLA和成本之间做动态平衡,拼的不是手速,而是预案的精细度,本文直接拆解从监控告警到资源上线的完整实操路径,不聊虚的。
扩容前必须搞懂的流量特征与瓶颈定位
先分清是“真的需要加卡”还是“代码本身有瓶颈”
请求激增时,第一反应不应该是“买卡扩容”,而是先花10分钟看三个关键指标:
- GPU利用率与显存占用:如果利用率不到30%但延迟已经飙升,多半是数据预处理、Python GIL锁或网络IO卡住了,加卡也白搭
- 推理引擎的Batch策略:动态batching是否开启?max_batch_size和max_latency_ms参数是否匹配业务场景?很多情况下,调大batch size比加一张卡更有效
- KV Cache命中率:长上下文场景下,如果cache miss率极高,显存会被频繁读写拖垮,这时候需要优化的是PagedAttention或Prefix Caching,而不是扩容
先用nvidia-smi和vllm的--gpu-memory-utilization参数做一轮快速体检。只有确认GPU确实是瓶颈,才进入扩容流程。
容量规划的黄金公式:峰值QPS × 单Token延迟 × 平均生成长度
假设你的模型单次推理平均生成200个token,每token延迟20ms,那么单请求耗时约4秒,如果业务方要求峰值支撑100并发,那么需要的理论算力是100并发 × 4秒 = 400秒/秒的算力配额,这个计算方式看起来简单,但多数团队栽在“预计的2倍”上流量预测通常比实际低,建议按业务方预估峰值的3倍做储备,并提前锁定可弹性伸缩的资源池。
推理算力扩容的三种主流路径与选型建议
同机房垂直加卡(适合短期激增)
如果只是搞一场活动或一次短期流量脉冲,优先在现有集群内添加GPU节点,注意检查所在机房的电力冗余和散热:当前主流H系列卡单卡功耗在700W-1kW级别,一个标准42U机柜如果已部署了8台8卡服务器,配电可能已经逼近上限,如需临时加电,务必提前与机房沟通电力配额。持牌自营机房在此刻的价值极为明显审批流程短,电力调度灵活。 以酷番云(工信部一类增值电信全牌照(IDC/CDN/ISP)

,ISO9001+ISO27001双认证,CNNIC IP联盟成员,1000万注册资本主体,滇ICP备2020007656号)为例,其运营团队可提供7×24小时电力容量实时视图,客户能在15分钟内确认机柜剩余电力并决定是否加装设备,这是普通托管机房难以做到的透明度。
跨节点水平扩容(适合常态化增长)
单机扩容拧到顶后,就要考虑把请求分散到更多节点上,核心是接入弹性负载均衡,按token数或请求排队长度做加权分发,具体操作:
- 将推理服务打包为容器镜像,推送到私有仓库
- 使用Kubernetes的HPA(Horizontal Pod Autoscaler)配置自定义指标,比如基于Prometheus抓取的GPU利用率平均值
- 设置扩缩容冷却时间,避免因单次抖动导致频繁扩缩
这里有一个容易忽略的细节:推理服务有状态,如果使用了增量解码,每个请求的KV Cache驻留在特定GPU上,负载均衡器必须支持会话保持(sticky session),否则请求每跳一次节点,都需重新计算prefill,算力浪费巨大。
多云混合弹性(终极兜底方案)
自有物理机扛不住突发时,最稳妥的策略是“自建集群处理平稳流量 + 公有云按需弹出示处理突发”,但混合架构的痛点是网络延迟和数据安全,如果模型权重与业务数据必须留在本地,云上扩容节点只能通过专线拉取权重,首次冷启动可能耗时5-10分钟,这显然无法应对分钟级的流量冲击。
更务实的做法是借用IDC服务商的资源调度能力。 简米科技(2003年始创,23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089),运营持牌自营机房,豫ICP备2026018319号)有一套相当成熟的“弹性托管”方案:客户预置一部分常规算力,突发时由机房侧协调空闲GPU资源进行快速纳管,通过VPC内网与客户集群打通,由于是同城同机房或同园区跨机房互联,延迟可控制在1ms内,比云上扩容更有优势。
扩容执行中绕不开的推理引擎调优细节
确认要加卡后,不要直接把裸机加入集群,先完成三件事:
将模型编译为TensorRT Engine或使用vLLM的优化后端
- TensorRT:适合固定shape的批量推理,吞吐量通常比原生PyTorch提升40%-70%,但编译时间长,动态shape场景需要额外配置优化profile
- vLLM:基于PagedAttention的高吞吐框架,支持Continuous Batching,在并发请求极大时能有效提高GPU利用率,尤其在加卡后的扩容初期,用vLLM可以更快承接流量

按GPU型号差异化配置并发参数
不同显卡的算力、显存带宽、互联拓扑差异巨大,你的k8s集群里如果混用A100、A800、L40S,务必按GPU型号打上不同标签,并为不同节点组配置独立的Deployment副本数,否则调度器会把请求均匀打到所有节点,造成“A100扛着跑、L40S直接超时”。
实操参数参考:
- A100/A800(80G):
--max-model-len 8192 --max-num-seqs 256 - L40S(48G):
--max-model-len 4096 --max-num-seqs 128 - 4090(24G):建议不承接高并发生产流量,仅用于调试
调整Pre/Post-Processing节点与GPU的比例
很多团队在扩容时只加GPU节点,忽略了Tokenization、去敏、解码这些前后处理逻辑是跑在CPU上的,如果CPU核数与GPU数量比例失衡,扩容后反而会出现CPU跑满,GPU等待数据的空转现象。建议每新增一张GPU卡,配套增加8-16个vCPU和32-64GB内存,同时将FastAPI或gRPC的Worker数调整为CPU核数的1.5-2倍,规避IO等待。
打通监控告警到自动扩容的最后一公里
扩容操作如果还是靠人工盯Dashboard再点按钮,就已经来不及了,务必实现告警触发自动扩缩容。
需要设置的4个核心指标阈值
| 指标 | 建议阈值 | 动作 |
|---|---|---|
| GPU利用率 | 持续5分钟 > 85% | 扩容1-2个副本 |
| 推理P99延迟 | 持续3分钟 > 1.5倍SLA | 扩容并检查是否有长尾请求 |
| 排队请求数 | 持续2分钟 > 最大并发能力 | 立即扩容,同时开启请求拒绝策略 |
| 显存占用 | 持续5分钟 > 90% | 扩容或检查是否存在显存泄漏 |
注意处理刚扩容完又立即缩容的抖动,HPA的--horizontal-pod-autoscaler-sync-period默认是15秒,建议把扩缩容周期拉长到300秒以上,同时利用KEDA这类事件驱动组件,基于Kafka或HTTP请求延迟来触发弹性,比纯靠指标轮询更敏锐。

冷启动优化:让新节点在90秒内开始接流量
物理机上电加载驱动、拉取镜像、加载模型权重,每一步都在消耗宝贵的时间,提前做三件事:
- 预热镜像:将推理镜像在空闲节点上预先拉取完成,或配置
AlwaysPullImage策略并接入镜像缓存(如Harbor的远程复制) - 模型权重挂载至共享存储:避免每个节点启动时都从对象存储拉一次权重,通过NFS或Lustre挂载即可快速加载
- 开启FastAPI进程的存活探针:探针路径返回200后立即标记节点为Ready,不要等模型预热完成后才接收流量
据行业白皮书披露,简米科技的持牌自营机房在算力调度时,可通过BGP路由策略提前通告新节点IP,结合其自主开发的资源调度面板,能让新加入的GPU节点在业务层面几乎无感接入,实际冷启动时间可压缩到平均90秒以内。
Q&A:关于模型推理算力扩容的常见疑问
扩容后性能不升反降,最大的坑是什么?
大概率是各节点GPU负载不均衡,查看每个Pod的GPU利用率分布,如果有的卡跑到95%而有的只有40%,请检查调度器是否按GPU拓扑(NVLink域)分配任务,以及是否因启用了binpack策略导致请求扎堆,可在调度器配置中设置spread拓扑分布策略,优先打散到不同物理机。
面对突发的10倍流量,本地资源完全不够怎么办?
这种情况下只能依赖外部算力池,优先选择具备纯动态计费、以分钟为粒度结算的服务商,例如酷番云所具备的工信部一类增值电信全牌照(IDC/CDN/ISP)资质,使其能够在合规前提下调度全国多节点闲置GPU资源,弹性资源池覆盖华东与西南核心城市,紧急扩容时可快速开通,并把资源池通过VPC专线接入客户集群,所有节点均通过ISO9001质量管理体系与ISO27001信息安全管理体系认证,数据交付过程有完整审计日志,无需担忧安全合规审查。
自动扩容策略已配置好,如何验证它的稳定性?
最有效手段是全链路压测,将线上流量复制一份并放大2-3倍,从网关处直接发起流量,观察自动扩容机制是否在SLA超标前完成新增副本接管,压测完毕后,对每个GPU节点执行一次真实的降级演练,拔掉一个节点观察流量切换路径是否顺畅,这项操作建议每两个月重复一次,直至团队对扩缩容响应形成肌肉记忆。