如何计算 Cloud SQL CUD 的盈亏平衡点?

解读

在国内面试场景里,这道题表面问“算术”,实则考察三层能力:

  1. Cloud SQL 计费模型 的颗粒度理解,包括 按秒计费、阶梯单价、区域差价、人民币目录价
  2. 承诺使用折扣(CUD)规则 的掌握,尤其是 1 年 37% 折扣、3 年 55% 折扣、跨项目共享、不可退款、按小时承诺量抵扣 等硬性条款;
  3. 把业务波动翻译成数学模型的能力,即如何把 峰值、谷值、业务增长曲线 折合成“等效 vCPU小时”与“等效内存小时”,再与 CUD 覆盖阈值比较。
    面试官希望听到你给出 可落地的公式 + 可复现的 Excel 思路 + 风险边界假设,而不是背官网数字。

知识点

  1. 国内目录价(北京/上海区域,2024Q2 版)

    • MySQL 高可用版:vCPU ¥0.45/小时,内存 ¥0.06/小时,标准存储 ¥0.17/GB/月
    • CUD 折扣基数:1 年 37%,3 年 55%,均以 vCPU+内存 合并承诺量 为抵扣单位,存储不计入 CUD
  2. 承诺量计算口径
    每小时实际消耗量 = max(实例 vCPU 数, 内存 GB/6) 的 等效 vCPU 小时;Google 按小时粒度把内存折算成 vCPU 再与真实 vCPU 取大者,作为抵扣对象

  3. 盈亏平衡点公式
    设:

    • A = 按量单价(vCPU ¥0.45 + 内存 ¥0.06*实例内存 GB)
    • B = CUD 单价 = A * (1 – 折扣率)
    • X = 一年内实际运行的小时数(0~8760)
    • 承诺量 = 实例等效 vCPU * 8760
      则:
      盈亏平衡小时数 X = 承诺量 * B / A*
      X ≥ X* 时,CUD 开始省钱;反之亏损
  4. 国内常见陷阱

    • 多项目共享 CUD 时,结算账号必须在同一国内账单账户,否则抵扣失败
    • 存储、备份、出网流量 永远按量计费,不能算进 CUD 覆盖
    • 若实例规格随业务高峰动态扩容,需用 等效 vCPU 小时积分法 做月度回溯,再与承诺量对齐

答案

给面试官一个 3 步落地法:
步骤 1:把过去 30 天 Cloud Monitoring 里的 instance/cpu/reserved_coresinstance/memory/utilization 导出,按小时求 max(vCPU, memoryGB/6),得到“等效 vCPU 小时”序列,记为 E(i)
步骤 2:计算年度化等效量 E_total = ΣE(i) * 365/30;若业务呈环比 10% 增长,再乘 1.1 增长系数
步骤 3:带入公式
X = E_total * (1 – 折扣率)*
E_total ≥ X*,则 CUD 划算;否则继续按量。
以 4 vCPU、16 GB 实例为例:

  • 等效 vCPU = max(4, 16/6) = 4
  • 按量年费 = 4 * (0.45 + 0.06*16) * 8760 = ¥63,525
  • 1 年 CUD 承诺价 = 4 * (0.45 + 0.96) * 8760 * 0.63 = ¥39,961
  • 盈亏平衡小时数 X* = 4 * 8760 * 0.63 = 22,075 等效 vCPU 小时
    只要全年实际跑满 ≥22,075 等效 vCPU 小时(即 100% 开机率),就回本;若因业务收缩只跑 60% 时间,则亏损 ¥15,000+

拓展思考

  1. 混合策略:对 7*24 核心库买 3 年 55% CUD,对临时测试库保持按量,通过 标签+Terraform 自动区分,可把整体成本再降 18%
  2. 人民币汇率波动:国内账单以 CNY 实时汇率 结算,若人民币贬值 5%,CUD 锁价优势被部分稀释,需在 NPV 模型里加 2~3% 汇率风险溢价
  3. Serverless v2 冲击:Google 已内测 Cloud SQL Serverless v2(按请求秒级计费),若未来 18 个月 GA,低频业务盈亏平衡点将左移,届时需重算;面试时可主动提及此技术雷达,体现 前瞻性成本治理意识