为省钱把轻量分类任务从 GPU 机型换到 CPU 机型,单小时单价从 6 元降到 0.8 元,但 QPS 从 200 掉到 40,按每月 3000 万次调用算,总成本反而高了 20%。
排查方向其实有限,先把可能性排一排。只比较了单小时单价,没有算吞吐;CPU 核数不够,排队时间被算进延迟;批处理在 CPU 上收益低,无法摊薄固定开销;弹性扩容慢,峰值时按最高规格计费。
动手时先按每百万次调用算成本而不是按小时
python cost.py --qps 40 --price 0.8 --calls 30000000
压测 CPU 机型的实际吞吐
python bench.py --url http://10.0.0.9:8000 --concurrency 16
接着对比 GPU 机型的单次成本
python cost.py --qps 200 --price 6 --calls 30000000
剩下的就是按结果决定分流比例
python route_cost.py --split 0.7
中途换过一次思路,把范围缩到最小的那一层,反而快了。
改完先别撤,确认这几项。单次调用成本与总成本两张表能对上,分流后总账单下降,P99 延迟没有超过 SLA。
提醒一点。成本对比要落在每千次或每百万次调用上,只看机器单价容易把低吞吐机型算成便宜。这类问题最好一次改到位,反复小改反而容易把原因搅混。
