AI 工程性能排查运维哲学

服务没报错但突然变慢?我查到了一个没人动过的配置

2026-07-31 · PM Parker · 阅读约 8 分钟

某天,团队里用得好好的一个推理服务"突然变慢"了。

长提示词的首字延迟明显恶化,体验断崖式下滑。

监控大盘全绿。没有报错,没有告警。

服务"一切正常",就是慢。

这篇是完整的排查复盘,以及它逼出来的一套防漂移巡检方法。

排查链:从最俗的可能性开始

性能排查最忌讳上来就怀疑玄学。我的顺序固定:

网络层——链路延迟有没有变?排除。

负载层——并发是不是涨了?排除,请求量持平。

资源层——GPU 利用率、显存、队列深度。发现线索:利用率没有异常升高,但每 token 延迟变高了——单位工作量的效率降低了。

配置层——服务配置和"上周正常时"比,有没有不一样?

这一层,抓到人了。

真凶:调优被静默回滚

之前我做过一项调优:把 vLLM 的 max-num-batched-tokens 从默认的 256 提到 4096。

实测收益:23K token 的提示词,首字延迟从 71.1 秒降到 43.1 秒,1.65 倍。

排查发现,这份调优在某次变更后被回滚了——参数回到 256,延迟自然回到 71 秒的水平。

更值得玩味的是第二个发现:回滚的来源是一次非人工的静默操作——托管平台的例行机制覆盖了手工配置。

没有任何通知,没有变更记录,服务照常重启。

大家在没有优化的状态下跑了好几天,没人知道。

沉淀三制度

配置每日快照 + 巡检 diff。所有关键服务的配置每天自动快照,巡检时比对相邻快照——任何无主变更直接暴露。每天几分钟机器时间,换"配置永远可知"。

性能基线 + 漂移告警。为一组标准请求录制性能基线,定期回放对比延迟分布。基线漂移超阈值就告警——哪怕所有监控都绿。要看分布不要只看均值:P50 正常而 P95 翻倍,就是这类问题的典型指纹。

变更日志强制化。任何参数调整必须留痕(谁、何时、为什么)。变更不可怕,无感知的变更才可怕

PM 视角:这是需求评审的老朋友

把这次排查抽象一层,它是产品里经典问题的工程版:"没人动过它,但它变了。"

转化率突然掉了,没人改过页面——真的吗?实验配置、投放参数、SDK 版本,都是"没人动过"的黑箱。

产品侧的解法和技术侧同构:配置快照(实验配置留痕)+ 性能基线(核心漏斗基准)+ 变更强制留痕(发布与实验日志)。

系统的当前状态必须永远可审计,否则你所有的判断都建立在"以为"之上。

那次修复本身只花了十分钟——把参数改回去。

真正值钱的从来不是那十分钟,是之后再也不用花的那无数个十分钟。

发现问题的方法论续篇(调优如何被守住)见 配置治理;归因框架见 慢的三层真相


← 返回博客列表 · 相关阅读:配置治理 · 静默降级