GPU 资源精细调度与成本控制:从机制选型到可审计退租的工程实战一套可靠的 GPU 成本方案,不是把一张卡切成更多份,而是证明:在服务目标、故障恢复和发布余量均成立时,哪些节点可以停止付费。面向:推理平台、Kubernetes、SRE 与 AI 基础设施工程师。证据边界:本文的 3 节点 A100 案例、吞吐、显存和成本均为可复测设计数据,不是已验证的生产结论。部署前必须锁定软件版本,并以目标模型、硬件、输入分布和账单复验。一、问题不是“GPU 利用率低”,而是“付费容量没有被证明需要”一个典型推理平台同时提供 Embedding、分类、ASR、通用问答和低频文档抽取。若各团队都申请一张整卡,常见结果是:权重长期驻留显存;Pod 全天运行;GPU 节点全天计费;高峰时有的模型忙,低频模型却锁住整张卡;节点无法退租,空闲资源也不能兑现为账单下降。但低 GPU 利用率不能直接推出可以分区或缩容。一个服务可能受 CPU 前处理、I/O、显存带宽、单请求延迟或 KV Cache 限制。LLM 的计算利用率很低时,也可能已经没有 KV Cache 空间。因此,优化前先回答四个问题:哪些模型必须同时 Ready?哪些模型可等待、异步或降级?哪些容量在任一节点故障后仍必须保留?释放的资源能否实际减少付费 GPU 节点?优化目标是:[\min C_{total}\quad\text{满足 SLO、故障恢复、发布余量和安全约束}]其中:[C_{total}=C_{GPU}+C_{CPU/memory}+C_{storage/network}+C_{control}+C_{operations}+C_{failure}]二、建立基线:先收集可用于决策的数据至少覆盖一个完整业务周期:工作日、周末、批处理窗口和高峰活动。维度必须采集用途请求形态到达率、峰值、突发长度、输入大小决定副本与排队预算服务目标P95、P99、成功率、TTFT、超时决定是否允许冷启动显存稳态、加载峰值、并发峰值、切换峰值决定 profile 与余量性能瓶颈计算、带宽、CPU、I/O、网络决定是否适合切分冷启动调度、镜像、权重、预热分段耗时决定缩零策略可替代性低精度、CPU、异步、缓存、降级决定过载策略故障域GPU、节点、机架、可用区决定副本布局账单节点小时、承诺折扣、存储网络决定真实收益不同模型不能只用一个“平均 QPS”描述。LLM 应同时记录输入/输出 token、TTFT、每 token 延迟、上下文长度和并发会话。ASR 应记录音频分钟数、实时率和切片策略。Embedding、分类与视觉模型应固定输入分布、batch 和并发。三、四个动态控制面必须分开控制面改变对象常见组件频率硬件分区MIG profile 与布局GPU Operator、MIG Manager维护窗口模型驻留worker 内权重集合Triton、驻留控制器分钟级服务副本可接流量实例数量KEDA、HPA、服务框架秒到分钟级节点容量GPU 节点数量Cluster Autoscaler、云流程分钟到小时级模型卸载不等于 MIG 回收。Pod 缩零不等于节点退租。Deployment 增加副本不等于 Pod 已获得 GPU。每个循环只能写自己拥有的状态。不要让 KEDA 和 Knative 同时修改同一个工作负载的副本数。不要让在线控制器频繁重配 MIG 几何布局。四、共享机制:先选择隔离语义,再谈利用率方式收益明确边界推荐起点整卡独占性能最可预测小模型易浪费大模型、严格延迟、基线Time-slicing多 Pod 轮转使用 GPU不提供显存/故障隔离;副本数是超售可信、容忍抖动任务MPS多 CUDA 进程并发配额、隔离和错误传播需逐版本验证受控 CUDA 任务MIG硬件级计算/显存分区profile 离散,有 placement 约束小中模型的隔离池多模型 worker减少低频权重常驻应用负责预算、路由和生命周期长尾模型Time-slicing 与应用级模型轮换不是同一件事。前者共享执行时间,不减少重复权重。后者允许权重先后驻留,却要承担加载和排队成本。MIG 可以减少资源竞争,但同一物理 GPU、同一节点和同一供电域仍是共享故障域。P0 的两个副本位于同一张卡时,不是高可用。五、MIG profile 与硬件必须一一对应以 A100 为例,profile 名称与显存大小随 40GB/80GB 型号变化:A100 40GBA100 80GB计算份额约值显存份额1g.5gb1g.10gb1/71/82g.10gb2g.20gb2/72/83g.20gb3g.40gb3/74/84g.20gb4g.40gb4/74/87g.40gb7g.80gb全部全部份额不是实际吞吐的线性承诺。它也不是可以按“总显存够用”自由拼接的内存条。合法布局取决于 placement。部署前必须在目标节点查询 NVML 或nvidia-smi,并验证完整几何布局。固定一种 profile 的池可采用single策略。同一 GPU 存在多种 profile 才采用mixed策略。GPU Operator 文档要求先选择 MIG 策略;重配时必须没有 GPU 用户工作负载,某些环境还需要重启。NVIDIA GPU Operator MIG 文档六、贯穿全文的案例:三节点 A100 80GB 服务池原平台有 8 张 A100 80GB,按团队独占。目标不是立即关掉五张卡。目标是先验证 3 台节点、每台 1 张 A100 80GB 是否满足业务和故障约束。三个节点必须位于独立物理故障域。每张卡采用相同的混合布局:每节点 profile数量三节点总数服务3g.40gb13通用问答2g.20gb13ASR1g.10gb26Embedding、分类、长尾3g + 2g + 1g + 1g = 7g只是候选布局。实际生产需固化为经过目标驱动验证的自定义 MIG ConfigMap。all-balanced只能作为验证便利名,不能假定跨 GPU 型号、驱动版本都一致。6.1 容量账本下面的数字是待复测设计数据。服务等级Profile峰值需求安全吞吐/副本Ready 副本失 1 节点后容量结论Embedding v3P01g.10gb60 req/s40 req/s380 req/s通过分类 v5P11g.10gb18 req/s30 req/s230 req/s通过ASR v2P12g.20gb50 音频分钟/分钟35370通过通用问答P13g.40gb24 会话12 会话324通过文档抽取P21g.10gb异步低频待压测0–1无同步承诺排队初始副本估算为:[N_{steady}=\left\lceil\frac{\lambda}{\mu\rho}\right\rceil]λ为需求,μ为满足 SLO 的单副本吞吐,ρ是保守利用率。队列有积压Q,希望在D秒内清空时:[N_{drain}\approx\left\lceil\frac{\lambda+Q/D}{\mu\rho}\right\rceil]这两个公式用于容量规划,不是 HPA 的精确算法。任一模型在失一节点、灰度发布或 profile 放置失败时不满足表中条件,都不能退租节点。七、显存准入:参数量不是容量证明profile 准入应按峰值显存做判断:[M_{peak}=M_{weights}+M_{workspace}+M_{activations}+M_{KV}+M_{runtime}+M_{overlap}]M_overlap指新旧权重、adapter 或引擎切换时的短暂共存。例如,1g.10gb实测可用显存为 9.5 GiB。某 Embedding 模型在最大输入与目标并发下峰值为 7.0 GiB。保留 1.5 GiB 余量后,单版本可准入。这不等于两个版本可同时加载。每个模型准入记录至少包含:字段要求模型制品不可变 digest运行环境GPU、驱动、CUDA、运行时版本压测形状输入、batch、并发、上下文性能P50/P95/P99、成功率、吞吐内存稳态、峰值、切换峰值结论允许 profile、余量、已知限制未通过准入的模型只能进入隔离测试池。八、运行时与模型类型要匹配模型类型优先验证的运行时驻留策略ONNX 分类、EmbeddingTriton + ONNX Runtime显式加载/卸载与路由ASR、视觉、定制 PyTorch对应后端运行时先测多模型并发与卸载LLMvLLM 等兼容引擎常驻基座,引擎副本扩缩同基座 LoRA支持 adapter 的引擎基座共享、adapter 受控管理不要把 LoRA adapter 的动态管理表述为任意基座权重的低成本切换。不要把 ModelMesh 与每模型 Serverless 副本无差别叠加。TritonEXPLICIT模式支持模型管理 API,但不替平台决定何时淘汰。Triton Model Management九、请求到退租:端到端时序必须可观测节点容量控制器Triton Worker驻留控制器推理 PodK8s 调度器KEDA/HPA网关/持久队列客户端节点容量控制器Triton Worker驻留控制器推理 PodK8s 调度器