网易首页 > 网易号 > 正文 申请入驻

合并队列一小时能落多少PR?加流水线反而更慢

0
分享至

一个合并队列每小时能落地多少拉取请求,答案不在流水线数量上。它被两个数字卡死:队列里的变更失败有多频繁,以及CI跑一次要多久。加更多流水线,只是让更多工作一起被浪费掉。


这套逻辑和乐观锁在争用下的表现是同一个形状。每笔事务都要对着它之前提交的所有内容做校验,一次中止就把排在后面的工作全部丢掉。加worker只会增加竞争者,吞吐量由中止率和事务时间决定。代理把负载推高,天花板却留在原地。

用学校食堂打饭来理解:每个孩子都要把餐盘给厨师看,厨师拿它和之前每一个餐盘比对。厨师能同时看二十个盘子,可一旦某个盘子有问题,那个孩子出列,排在他后面的所有人都得重新出示——因为厨师刚才是拿错误的盘子做的比对。平时队伍走得挺顺,直到一个班的孩子涌进来,餐盘多了三倍。厨师没变慢,队伍照样堵住。

失败率和CI时间决定上限

设队列中失败拉取请求的占比为p,CI时间为T。两次失败之间,队列大约能落地1/p个拉取请求;每次失败会丢掉后面最多T的工作量。所以无论多少条流水线,一小时落地的数量都不会超过约1/(p × T)。

按这个公式:CI三十分钟、失败率5%,一小时约40个;开20条流水线,约24个;加到100条流水线,只买到38个,CI账单却是五倍。

失败率来自两处。一是真实的破坏:某个变更在自己的分支上通过了,却和前面某个变更冲突。二是不稳定的测试:代码没动,测试时好时坏。这类问题会累积——五十个测试各自千分之一的概率偶发失败,合起来大约每二十次运行就失败一次,也就是p = 5%。

接近上限时,等待时间会陡涨。每小时8个拉取请求的队列,平均等34分钟;把到达量提到24个,纸面上仍在上限之内,等待却超过100分钟。

先降失败率,再谈加流水线

什么时候这事要紧?仓库用了合并队列,而人或代理提交的拉取请求比上季度多了。CI跑得久、又有几个大家都在重试的测试时,影响最大。如果经常看到“removed from the merge queue”,你已经在为此付账了。

队列变慢,最直觉的修法是加并行流水线。失败一多,这招收益很小,还推高CI账单。等待的增长快过流量的增长。代理随后在过期的main上rebase,彼此冲突,在偶发失败之上又添了真实失败。一个不稳定的测试原本只是烦人,在高负载下它决定了你的吞吐量。

动手前先取上周的两个数字,不需要新工具:数一数队列合并了多少拉取请求、因检查失败被移除了多少,后者除以前者加后者,就是p;再从任意一次最近的队列运行里读出T。算出1/(p × T),和你最忙的那一小时比一比。如果忙时已经逼近上限的一半,等待就已经很长了。

顺序是:先降p——失败测试在剔除前先重试一次,把偶发失败的测试隔离出去;再缩短T,把慢检查移出队列;加流水线放最后。

具体到四个角色。管CI的人,在合并组上只跑快速的必需检查,让一个偶发失败必须失败两次才剔除拉取请求;GitHub Actions里队列触发merge_group事件,重试可用pytest-rerunfailures插件,GitLab则在任务上加retry: { max: 1, when: script_failure }。两次都失败才算失败,5%的偶发率会降到约0.25%,代价是偶发问题被藏起来,所以要配合第三个角色。

管仓库的人,按公式而不是感觉来定队列规模。GitHub用build concurrency设置流水线数(1到100),GitLab默认允许20条并行流水线。改设置前先代入自己的数字:p为5%、CI三十分钟时,二十条流水线按公式约20个/小时,模拟约24个;把p降到1%,同样二十条约33个。后者是更便宜的那个改动。

管测试套件的人,找出偶发测试——同一个提交上先失败后通过的就是。记录下来,按次数排序,把榜首的隔离掉直到修好。管代理的人,让拉取请求进队列之前先跑队列的检查,先在新鲜的main上rebase:冲突在分支上被发现只花一条流水线,在队列里被发现要花掉后面所有流水线。

一周后重算p和T。因失败被移除的数量应该先降,队列里的平均停留时间随之下降,忙时落地量向公式值靠拢。如果p降了而等待没降,说明T成了新的限制,去看哪个检查最慢。

什么时候不该调队列

量低的时候。一小时只落地几个拉取请求的团队远在任何上限之下,等待只来自CI时间,缩短CI就好,别动队列。

失败是真实的而非偶发的时候。如果被剔除的拉取请求大多是坏的,重试只是把同样的答案推迟,应该在分支上更早拦住它们。

量增长到任何队列都装不下的时候。Anthropic的合并量从2026年5月每天约2,500次涨到9月每天超过30,000次,他们不再使用合并队列,把大部分测试移到合并之后、部署之前。这用绿色的main换速度,需要快速回滚,以及能在几分钟内修好main的人或东西。这比调队列是个大得多的改动。

批量合并也有代价。更大的合并组把多个拉取请求放进一条流水线测试,一旦失败就得拆分找出元凶,反而多花运行次数。

改任何东西之前先回答三个问题:上周排队的拉取请求里,因检查失败被移除的占多少?合并组上的必需检查要跑多少分钟?你最忙的那一小时离1/(p × T)有多近?

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
以色列议会选举初步计票全部完成,议会席位基本确定

以色列议会选举初步计票全部完成,议会席位基本确定

澎湃新闻
2026-10-30 02:49:03
穆帅力主皇马签下32岁B席!B席拒绝巴萨,德比战兑现身价

穆帅力主皇马签下32岁B席!B席拒绝巴萨,德比战兑现身价

福酱的小时光
2026-10-29 18:15:18
30日凌晨WTT冠军赛战报:女单8强决出2席!陈幸同3-1,王艺迪3-0

30日凌晨WTT冠军赛战报:女单8强决出2席!陈幸同3-1,王艺迪3-0

墨史轩
2026-10-30 04:40:15
密春雷前妻,现在独居上海带龙凤胎,名下资产不受前夫债务牵连

密春雷前妻,现在独居上海带龙凤胎,名下资产不受前夫债务牵连

时尚的弄潮
2026-10-29 10:46:57
上海要栽了,将成就浙江五连胜?杀手锏再现

上海要栽了,将成就浙江五连胜?杀手锏再现

体育篮球弟
2026-10-30 04:55:29
下一场还要打5连胜火箭!弗拉格26+5+8,24分大胜,终结雷霆4连胜

下一场还要打5连胜火箭!弗拉格26+5+8,24分大胜,终结雷霆4连胜

无术不学
2026-10-30 00:05:22
网红跨境电商破产:负债8亿

网红跨境电商破产:负债8亿

创投家
2026-10-28 23:35:25
男生4次考公失败,花2.2万旅行6国17座城市,途中看到妈妈朋友圈:“老娘扛你看世界,你替老娘圆梦”,顿时五味杂陈

男生4次考公失败,花2.2万旅行6国17座城市,途中看到妈妈朋友圈:“老娘扛你看世界,你替老娘圆梦”,顿时五味杂陈

背包旅行
2026-09-15 11:30:07
为什么在中国买东西,你感觉不到自己在交税?

为什么在中国买东西,你感觉不到自己在交税?

A活着
2026-10-26 08:25:06
郭晶晶带老公孩子回娘家,霍启刚站老婆身后当陪衬,俩人都好实在

郭晶晶带老公孩子回娘家,霍启刚站老婆身后当陪衬,俩人都好实在

观鱼听雨
2026-10-30 02:51:10
华为Mate 100首发!麒麟9060 Pro处理器升级更猛:良率提升明显

华为Mate 100首发!麒麟9060 Pro处理器升级更猛:良率提升明显

时尚的弄潮
2026-10-30 07:17:12
不是伦德博格!不是迪班萨!2026届最强新秀出炉,有望成为下一个伦纳德

不是伦德博格!不是迪班萨!2026届最强新秀出炉,有望成为下一个伦纳德

后仰跳投绝杀
2026-10-29 19:21:55
哪个行业悄悄好起来了?就是硬捂着,不让别人知道的那种?

哪个行业悄悄好起来了?就是硬捂着,不让别人知道的那种?

夜深爱杂谈
2026-10-25 19:31:49
奥巴马希拉里同时出手!民主党直接逼问特朗普:你到底替谁办事!

奥巴马希拉里同时出手!民主党直接逼问特朗普:你到底替谁办事!

军军记录生活
2026-10-30 07:28:52
美专家:中国已提前准备好,火箭军首波次打击会让美空军“停飞”

美专家:中国已提前准备好,火箭军首波次打击会让美空军“停飞”

凉湫瑾言
2026-10-30 01:08:02
贝克汉姆晒21年前与凯恩夫妇合影:祝贺你们俩

贝克汉姆晒21年前与凯恩夫妇合影:祝贺你们俩

懂球帝
2026-10-28 03:51:21
继手伸进裤子后,48岁刘涛被当众摸胸,全程赔笑不敢怒,多人遭殃

继手伸进裤子后,48岁刘涛被当众摸胸,全程赔笑不敢怒,多人遭殃

叨唠
2026-10-29 05:37:08
刚刚,全线跳水!两大利空,突袭美股

刚刚,全线跳水!两大利空,突袭美股

券商中国
2026-10-30 07:21:50
正式认罪!顶级射手,NBA生涯没了!

正式认罪!顶级射手,NBA生涯没了!

篮球实录
2026-10-29 15:03:47
体制内外退休金的巨大差距引起老百姓的很大不满!

体制内外退休金的巨大差距引起老百姓的很大不满!

逍遥论经
2026-10-08 14:57:40
2026-10-30 09:15:00
我是一个粉刷匠2
我是一个粉刷匠2
有态度网友ytd
199文章数 173关注度
往期回顾 全部

头条要闻

牛弹琴:俄罗斯第一毒舌又杀疯了 西方估计也没想到

头条要闻

牛弹琴:俄罗斯第一毒舌又杀疯了 西方估计也没想到

体育要闻

超级黑马!球队不败 29岁的他得分榜前三

娱乐要闻

白百何被曝和二婚丈夫离婚 和男生逛街

财经要闻

恒大物业新东家,定了

科技要闻

MacBook终于能触屏了:22999元起

汽车要闻

增程纯电双动力 小鹏MONA L05上市限时13.98万起

态度原创

家居
时尚
房产
亲子
本地

家居要闻

2026建博会(广州) 公装联探展交流活动

俞灏明凌晨官宣结婚现争议!文案疑内涵前任,王晓晨全程未表态

房产要闻

12.1亿!三亚挂出重磅宅地!

亲子要闻

固定剂量进口婴儿RSV长效单抗在穗注射

本地新闻

十月奔赴迪庆,解锁梅里日照金山

无障碍浏览 进入关怀版