一、峰谷交错场景下的资源曲线刻画
推理请求的波动通常呈现日周期特征,早晚两个高峰之间存在明显低谷,单次请求的处理时长在几十到几百毫秒之间,对资源变化极为敏感。训练任务则相反,一旦启动就会长时间占满显存,中途被打断的代价很高。两类作业共享同一资源池时,若只看整体利用率,会得到一条被训练任务抬高的曲线,掩盖了推理侧真实的排队情况。因此刻画的第一步是按作业类型分别采集,把显存占用、算子执行占空比与请求排队长度三条曲线拆开观察,把两类曲线叠加在同一张图上极易误判扩容时机。
拆开之后可以看到,推理侧的资源诉求变化尺度是分钟级甚至秒级,训练侧则是小时级。这一差异决定了弹性策略不能共用同一套参数。实践中把资源池划分为常驻区与弹性区:常驻区容量按推理低谷需求加上训练基线设定,长期保有;弹性区按推理高峰的增量部分动态调整,训练任务只允许在弹性区的空闲窗口以可抢占方式插入。这样既让训练吃满碎片算力,也保证推理扩容时能够快速腾出资源。分区之后,弹性区的实例规格也可以与常驻区不同,短时高并发场景更适合数量较多而单卡显存适中的规格。
二、扩缩指标选型与阈值整定
常见的扩容触发指标包括GPU利用率、显存占用率与请求排队长度。利用率的问题在于滞后,等到利用率打满时排队往往已经堆积;显存占用率则容易被长期驻留的模型权重抬高,无法反映真实的计算压力。相对而言,排队长度与请求等待时长更贴近用户体感,适合作为主指标,利用率作为辅助指标参与判定。主辅指标同时越线才触发扩容,可以规避单一指标毛刺带来的误动作。指标采集的时间窗口同样重要,窗口过短易受毛刺干扰,过长又会拖慢反应,通常取三十秒到一分钟的滑动均值较为稳妥。
阈值整定的核心是让扩容动作赶在时延劣化之前完成。设实例从申请到可服务需要T秒,高峰期请求增速为R,则扩容阈值应当留出至少T乘以R的缓冲量。缩容阈值则要显著低于扩容阈值,形成足够宽的滞回区间,再叠加冷却窗口:一次扩容之后的若干分钟内不响应缩容信号,一次缩容之后同样静默一段时间。滞回加冷却的组合能把抖动次数压到很低,代价是资源回收略微延迟,这个折衷在多数业务中是划算的。参数确定后应在灰度环境回放历史流量验证,确认已知极端峰值下不会出现容量缺口。
三、实例预热与缩容期的优雅退出
GPU实例的冷启动开销主要来自三部分:虚拟机或容器创建、驱动与运行时初始化、模型权重加载。前者可以通过预置镜像与快照缩短,驱动初始化可以在镜像构建阶段完成大部分工作,真正棘手的是权重加载,大模型动辄数十GB,从对象存储拉取的耗时占据大头。可行的做法是在节点本地保留高频模型的缓存副本,并在实例创建的同时并行发起拉取,让网络传输与实例初始化重叠进行。更进一步的做法是维持少量温备实例,处于已加载权重但不接流量的状态,高峰来临时秒级接入,代价是常态下多付一部分费用。
缩容同样需要设计。直接回收正在处理请求的实例会造成失败率抖动,正确做法是先把实例从路由中摘除,停止接收新请求,等待在途请求处理完毕或达到排空超时后再释放。对于长时间运行的推理会话,还需要提供状态迁移或客户端重连引导。训练任务被抢占时,依赖检查点机制保存进度,抢占通知需要提前足够时长送达,让作业有机会完成一次落盘,这样恢复时的重算损失才可控。排空超时的设定需要参考请求时长分布的高分位值,过短会误伤长请求,过长则拖慢缩容节奏。
四、成本核算口径与策略回顾机制
弹性策略的效果最终要用账单验证。合理的核算口径不是单看总支出,而是把支出拆成常驻部分、弹性部分与闲置部分三段。常驻部分对应长期保有的基线容量,弹性部分对应按需扩出的实例,闲置部分则是已经付费却处于低占用状态的时段。三段占比一旦长期失衡,就说明容量规划或阈值设置需要调整:闲置占比偏高通常意味着缩容过于保守,弹性占比过高则提示基线设定偏低,而反复扩缩本身也在持续消耗启动开销与调度开销。
策略回顾应当形成固定节奏。每个周期导出扩缩事件明细,统计触发次数、每次动作的持续时长与随后的时延变化,识别出无效动作,即扩容之后指标并未改善、或缩容之后很快又扩回的情形。这些无效动作往往指向阈值区间过窄或指标选取失当。业务形态变化时更要重新标定,例如新上线的模型显存占用翻倍,原有的装箱假设便不再成立。把回顾结论沉淀为参数版本记录,下一次调整才有对照基准可循。
除了账单,容量规划还需要一份前瞻视角。业务方通常能提前给出活动排期、新模型上线计划与预计的请求量级,把这些信息接入容量评审,可以在事件发生前手动抬高基线,而不是完全依赖自动扩缩在高峰中追赶。对于可预期的大促或发布节点,提前一段时间做定时扩容,比阈值触发更从容,也不会在流量陡增的瞬间遭遇资源池供给不足。定时策略与自动策略需要明确优先级关系:定时给出的是容量下限,自动策略只能在此基础上继续向上扩,不允许把定时保留的容量缩掉,否则两套逻辑会互相打架,产生难以定位的容量抖动。两套策略的决策记录应当写入同一份事件流,便于事后还原每一次容量变化的成因。
结语:弹性的本质不是把机器开开关关,而是在成本、时延与稳定之间找到一条可持续的运行轨迹。把推理与训练的时间尺度分开看待,用主辅指标联合判定替代单一阈值,用滞回与冷却抑制抖动,再用预置镜像与本地缓存压缩冷启动,这几件事叠加起来的收益往往超过单点优化。真正决定效果的,是对自身业务曲线的持续观测与参数的定期回顾。