AI提效实战:用Gemini和Windsurf重构资源调度系统

杨智★
2026-02-22 03:07
阅读 2056

去年双11前夜,我坐在家里书房的电竞椅上(远程办公的“福利”就是不用穿裤子写代码),盯着屏幕上疯狂滚动的告警日志,心里默默问候了产品经理全家。我们基础架构组负责的内部资源调度平台,又在流量高峰时崩了。原因?老系统完全没法预测突发流量,资源分配还是靠人工拍脑袋——这都2024年了,我们还在玩“人肉调度”?

作为字节跳动干了五年后端的老兵,我其实早看这套系统不顺眼了。但以前总觉得“能跑就行”,毕竟线上没出大事故,领导也不催。直到CTO在全员会上喊出“AI提效,人人有责”,我才意识到:再不搞点真东西,年终述职怕是要凉。


为什么我们要重做资源调度?

先说说背景。我们内部有个叫 Windsurf 的平台,名字很酷,功能却很原始——它负责为所有微服务分配计算资源(CPU、内存、GPU等)。早期设计时,团队为了赶上线,直接用了静态配额:每个服务申请多少资源,就固定给多少。结果呢?有的服务常年吃不满,资源闲置;有的突发流量一来,立刻OOM,拖垮整个集群。

更离谱的是,运维同事每天要手动调整几百个服务的配额,堪称“当代数字农夫”。测试同学每次压测都要提前一周申请资源,产品经理还总在需求评审时说“这个功能很简单,加个按钮就行”,完全不知道背后资源调度有多复杂。

说实话,当时我真的想砸电脑。但冷静下来一想:这不正是个用AI提效的绝佳场景吗?


技术选型:为什么是Gemini?

一开始,我们调研了几个方案:

  • 自研模型:训练成本高,维护复杂,团队没人是ML专家
  • 开源LLM微调:数据隐私是个大问题,内部资源使用数据不能随便喂给外部模型
  • 云厂商API:延迟高,费用贵,而且不符合公司“技术自主可控”的战略

就在我们纠结的时候,Google发布了 Gemini。虽然它主要是多模态大模型,但它的推理能力、上下文理解深度,以及对结构化数据的处理能力,让我们眼前一亮。

最关键的是,Gemini支持私有化部署!我们可以在内部K8s集群上跑一个轻量版,既保证数据不出内网,又能利用其强大的推理能力。

“用大模型做资源调度?你是不是疯了?” —— 我们组新来的实习生听完方案后一脸懵。

但事实证明,这个“疯”想法还真行得通。


实战:把Gemini嵌入Windsurf

第一步:数据准备

Windsurf本身就有海量历史数据:每个服务过去30天的CPU使用率、内存占用、请求QPS、错误率……这些全都是结构化时序数据。我们把这些数据整理成JSON格式,每条记录包含:

{
  "service_name": "feed-service",
  "timestamp": "2024-05-01T12:00:00Z",
  "cpu_usage": 0.45,
  "memory_usage": 2.1,
  "qps": 12000,
  "error_rate": 0.001,
  "current_quota": { "cpu": 4, "memory": 8 }
}

然后,我们用这些数据构造Prompt,让Gemini学习“什么样的负载需要多少资源”。

第二步:Prompt工程

这里踩了个大坑。最初我们直接问:“这个服务需要多少资源?” Gemini经常瞎猜,甚至给出负数。

后来我们改用结构化指令 + 示例学习(Few-shot Learning)

你是一个资深SRE,请根据以下服务的历史负载数据,推荐合理的CPU和内存配额。要求:

  • CPU配额必须是0.5的整数倍
  • 内存配额必须是1GB的整数倍
  • 要预留20%缓冲应对突发流量

示例输入: { "cpu_usage": 0.6, "memory_usage": 3.2, "qps": 8000 } 示例输出: { "cpu": 2, "memory": 4 }

现在请处理以下输入: { "cpu_usage": 0.85, "memory_usage": 5.7, "qps": 15000 }

效果立竿见影!Gemini的输出开始符合工程约束了。

第三步:集成到Windsurf

我们在Windsurf的调度引擎里加了一个新模块 ai-recommender,每天凌晨2点自动跑批处理:

  1. 拉取过去24小时各服务的监控数据
  2. 构造Prompt,调用本地Gemini API
  3. 获取推荐配额,写入数据库
  4. 运维同学可在控制台看到“AI建议”,一键采纳或手动调整

为了防止AI乱来,我们还加了安全熔断机制:如果推荐值比当前配额变动超过50%,就自动转人工审核。


效果对比:省下的不只是钱

上线三个月后,我们拉了份数据,结果让人惊喜:

指标 旧系统 新系统(Gemini+Windsurf) 提升
资源利用率(CPU) 32% 68% +112%
OOM事件/月 47次 3次 -94%
运维人工干预时长/周 15小时 2小时 -87%
新服务上线资源申请时间 3天 2小时 -97%

最爽的是,双11那天,系统自动扩容了Feed流服务的资源,扛住了峰值流量,而我们组全员在家睡觉——这才是AI提效该有的样子!


踩过的坑与教训

当然,过程没那么顺利。分享几个血泪教训:

1. 别迷信AI,要加护栏

有一次Gemini建议把某个核心服务的CPU从8核降到1核,理由是“过去一周平均使用率只有0.2”。但它忽略了这个服务每天凌晨3点有个批处理任务,会瞬间打满CPU。幸好我们的熔断机制拦住了,否则第二天早上就得背锅。

教训:AI可以辅助决策,但关键路径必须有人工兜底。

2. Prompt不是一劳永逸

业务变化很快。比如最近短视频上传功能火了,上传服务的I/O模式变了,Gemini的推荐开始不准。我们不得不每周review一次Prompt模板,加入新的业务特征(比如“是否涉及大文件上传”)。

3. 资源≠性能,别本末倒置

一开始我们只优化资源利用率,结果有些服务虽然资源省了,但P99延迟上升了。后来我们在Prompt里加入了SLA约束:“确保P99 < 200ms”,才平衡了成本与体验。


为什么这算“最佳实践”?

很多人觉得AI提效就是调个API,但实际上,真正的提效在于系统性思维

  • 数据闭环:Windsurf本身就有完善的数据采集,这是AI落地的基础
  • 渐进式改造:我们没推翻重来,而是在现有系统上加AI模块,风险可控
  • 人机协同:AI出建议,人做决策,既提效又不失控
  • 度量驱动:所有改动都有数据验证,避免“为了AI而AI”

在字节,我们常说“Context, not Control”(给上下文,而不是控制)。Gemini在这里的角色,就是一个超级聪明的“上下文提供者”,帮工程师做出更快、更准的决策。


写在最后

现在,我已经在团队内部做了三次技术分享,主题都是“如何用AI重构传统系统”。每次都有新人问:“是不是以后SRE都要会调大模型了?”

我的回答是:工具在变,但工程本质不变。AI再强,也替代不了你对业务的理解、对系统的敬畏、对稳定性的执着。

不过嘛,如果你还在手动调资源配额……建议赶紧学点AI提效技巧,不然下次团建,你就只能坐后排听别人吹牛了。

对了,上周五晚上,我又在家撸代码到凌晨。但这次不是救火,而是在给Gemini加多目标优化功能——让它同时考虑成本、延迟、碳排放。毕竟,咱们字节人,卷完效率还得卷环保,你说是不是?

(完)

评论 0

最热最新
暂无评论
杨智★Lv.1
0
影响力
0
文章
0
粉丝