如何评估 GPU 利用率 50% 时的成本最优副本数?

解读

面试官真正想考察的是:

  1. 你是否能把“GPU 利用率 50%”翻译成可量化的性能缺口;
  2. 能否用国内公有云账单维度(卡时单价、阶梯折扣、抢占式实例)把“副本数”与“钱”直接挂钩;
  3. 是否掌握LLM 推理场景特有的弹性规律——首 Token 时延(TTFT)单卡并发上限之间的权衡;
  4. 最终给出一个可落地的决策公式,而不是拍脑袋“再扩两个 Pod”。

知识点

  1. 有效算力 = 卡数 × 单卡峰值 FLOPS × 利用率;50% 利用率说明算力浪费一半,但浪费不一定靠“加卡”解决,要先看瓶颈层级
    • GPU 内存带宽瓶颈 → 加卡无效,应做KV-Cache 压缩量化
    • 计算核心空闲 → 加卡有效,但需算边际成本
    • CPU 前处理阻塞 → 加卡反而降低利用率。
  2. 国内云厂商计费粒度普遍为分钟级出账,抢占式(竞价)GPU 实例可比按量便宜 70%,但 5 分钟回收;需把副本数拆成稳态副本 + 抢占式缓冲副本
  3. LLM 推理并发模型
    • 单卡最大并发数 N_max显存决定:N_max ≈ (显存 - 模型参数显存 - KV-Cache 峰值) / 单请求峰值显存;
    • 单卡最大吞吐计算决定:T_max = 单卡峰值 Throughput × 利用率;
      实际并发 < N_max 且GPU Util=50% 时,说明计算未满,可继续塞请求;反之若并发 ≈ N_max 且 Util=50%,则显存先打满,加卡是唯一选择。
  4. 成本最优副本数 k* 的决策公式(按量实例):
    k* = ceil( Q × SLO_TTFT / (T_max_per_card × (1 − ρ_waste)) )
    其中 Q 为峰值 QPS,ρ_waste 为利用率缺口 = 1 − 50% = 0.5;
    若使用抢占式实例,再把 k* 拆成稳态 k_stable缓冲 k_spot,满足:
    总成本 C = k_stable × P_stable + k_spot × P_spot × (1 − E_recycle)
    E_recycle 为抢占期望频率(国内华北 2 地域 A100 40G 竞价实例历史回收率约 12%)。
  5. 最后必须留10% 冗余副本应对国内晚高峰 20:00-22:00短视频流量突袭,否则一次突发即可把 TTFT 打到 2 s 以上,触发业务 SLA 罚款。

答案

给面试官一个三分钟可复述的闭环答案:
“第一步,用nvidia-smi dmondcgm抓 GPU Util、SM Active、Memory Util,如果 Memory Util < 80% 且 SM Active ≈ 50%,确认是计算未满
第二步,用perf-analyzer压到单卡 TTFT 刚好触达业务 SLO 2000 ms,此时读出最大并发 N_max对应吞吐 T_max
第三步,把线上峰值 QPS 300 代入公式 k = ceil(300 × 2000 ms / (T_max × 0.5)),得到理论卡数 8 张*;
第四步,看国内云账单:按量 A100 40G 在华东 2 享 Zone是 28.4 元/卡/时,抢占式 8.5 元,回收率 12%,算得成本最优组合稳态 6 张按量 + 2 张抢占,总成本 6×28.4 + 2×8.5×0.88 = 185.4 元/时
第五步,加 10% 冗余,最终副本数 9 张,其中 7 按量 2 抢占,GPU 利用率从 50% 提升到 78%,单请求成本下降 32%,TTFT P99 稳定在 1.8 s 以内。”

拓展思考

  1. 如果业务允许动态 SLO,可把夜间副本数缩到 3 张,利用国内云厂商 00:00-08:00 的深度折扣(最低 3 折),进一步把日均成本再降 40%。
  2. 当模型升级到4bit 量化后,单卡 N_max 提高 1.7 倍,此时利用率 50% 可能变成显存瓶颈,需把决策公式中的 T_max 换成显存维度N_max,避免盲目加卡。
  3. 国内信创替代趋势下,华为昇腾 910BAtlas 800 推理卡单价只有 A100 的 60%,但需把CUDA kernel 迁移到CANN,迁移后的算子利用率可能从 50% 跌到 35%,此时成本最优副本数需重新用昇腾实测 T_max代入,避免“卡便宜但用得更多”的陷阱。