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

合并队列一小时能落多少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.

相关推荐
热点推荐
27岁抗癌博主去世,去年确诊三阴乳腺癌:起初以为是纤维瘤,没有重视,直到最后B超报出4C

27岁抗癌博主去世,去年确诊三阴乳腺癌:起初以为是纤维瘤,没有重视,直到最后B超报出4C

荔枝新闻
2026-10-29 16:50:56
3-2险胜!男单爆大冷!就在刚刚,WTT冠军赛捷报:国乒克星出局,29岁周启豪再创奇迹!王皓立大功

3-2险胜!男单爆大冷!就在刚刚,WTT冠军赛捷报:国乒克星出局,29岁周启豪再创奇迹!王皓立大功

锐评利物浦
2026-10-29 10:07:00
广州赛:孙心然带伤2-1抢七首进巡回赛八强 决胜盘2-5落后惊天逆转

广州赛:孙心然带伤2-1抢七首进巡回赛八强 决胜盘2-5落后惊天逆转

醉卧浮生
2026-10-29 18:01:36
受权发布|张升民同志简历

受权发布|张升民同志简历

新华社
2026-10-29 17:50:01
35万买张船票一辈子环游世界?200多人上船两年后,全被丢在了柬埔寨…

35万买张船票一辈子环游世界?200多人上船两年后,全被丢在了柬埔寨…

英国那些事儿
2026-10-29 02:04:45
大衣哥风波愈演愈烈,警方现已介入,其邻居早就爆料他私下人品

大衣哥风波愈演愈烈,警方现已介入,其邻居早就爆料他私下人品

寒士之言本尊
2026-10-29 13:07:02
凌晨6点6岁娃拨120救大出血妈妈,书包塞水杯备衣,爸爸赶到才哭

凌晨6点6岁娃拨120救大出血妈妈,书包塞水杯备衣,爸爸赶到才哭

右右细毛和爸妈
2026-10-29 15:49:19
40岁武汉厨师转型做上门私厨,月均接单50单,去年纯利润40万元,当事人:现在年轻人不爱做饭,需求旺盛,行业空间还很大

40岁武汉厨师转型做上门私厨,月均接单50单,去年纯利润40万元,当事人:现在年轻人不爱做饭,需求旺盛,行业空间还很大

极目新闻
2026-10-29 13:02:02
登顶中国女首富仅2天,周群飞私生活被扒底朝天,刘强东没说错

登顶中国女首富仅2天,周群飞私生活被扒底朝天,刘强东没说错

阿紵美食
2026-10-29 09:24:33
张升民同志简历

张升民同志简历

澎湃新闻
2026-10-29 18:15:07
马杜罗案主审法官去世

马杜罗案主审法官去世

扬子晚报
2026-10-29 20:13:44
2-1神奇逆转,孙心然赢麻:排名飙升+创个人纪录,冲4强对手如下

2-1神奇逆转,孙心然赢麻:排名飙升+创个人纪录,冲4强对手如下

大秦壁虎白话体育
2026-10-29 18:40:18
“摔得属实,起身漂亮”!上海时装周惊现名场面:总冠军薛金猴T台滑倒后起身续走,相关视频引爆评论区

“摔得属实,起身漂亮”!上海时装周惊现名场面:总冠军薛金猴T台滑倒后起身续走,相关视频引爆评论区

火山詩话
2026-10-29 06:05:18
2-3惜败!女单大爆冷!就在刚刚,WTT冠军赛:22岁日乒名将惨遭一轮游!陈幸同3-0强势晋级,20岁德国左撇子杀疯了

2-3惜败!女单大爆冷!就在刚刚,WTT冠军赛:22岁日乒名将惨遭一轮游!陈幸同3-0强势晋级,20岁德国左撇子杀疯了

篮球热嗖
2026-10-29 10:08:29
杨尚昆担任国家主席时,为什么没有入选政治局常委?

杨尚昆担任国家主席时,为什么没有入选政治局常委?

【历史客栈】
2026-10-29 16:01:29
美国慌了,日本急了,印度懵了,因为他们察觉,歼-20还不是最顶尖的,中国的实力远不止明面上的这点实力

美国慌了,日本急了,印度懵了,因为他们察觉,歼-20还不是最顶尖的,中国的实力远不止明面上的这点实力

林杰论事
2026-10-29 12:49:47
山西17岁男生被人冒充警察骗出家门殴打:三被告人当庭认罪认罚

山西17岁男生被人冒充警察骗出家门殴打:三被告人当庭认罪认罚

新京报
2026-10-29 13:43:07
皇马回应炸锅,人民日报重锤,姆巴佩完了

皇马回应炸锅,人民日报重锤,姆巴佩完了

鸣金网
2026-10-28 16:43:54
真是笑不活了!30岁梁靖昆在外拼命打比赛,媳妇却在家给他拆台!如今全网都知道了,大胖的面子算是保不住了!

真是笑不活了!30岁梁靖昆在外拼命打比赛,媳妇却在家给他拆台!如今全网都知道了,大胖的面子算是保不住了!

锐评利物浦
2026-10-29 19:07:52
西班牙高铁相撞已致68人遇难,推测还有更多遇难者;目击者回忆事故现场:伤员和遗体从扭曲的金属残骸中被转移出来,如同地狱

西班牙高铁相撞已致68人遇难,推测还有更多遇难者;目击者回忆事故现场:伤员和遗体从扭曲的金属残骸中被转移出来,如同地狱

极目新闻
2026-10-29 13:54:40
2026-10-29 20:44:49
我是一个粉刷匠2
我是一个粉刷匠2
有态度网友ytd
228文章数 173关注度
往期回顾 全部

头条要闻

美国中期选举临近 特朗普连跑红州20次奥巴马出山压阵

头条要闻

美国中期选举临近 特朗普连跑红州20次奥巴马出山压阵

体育要闻

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

娱乐要闻

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

财经要闻

两大娱乐巨头,谈崩了

科技要闻

MacBook终于能触屏了:22999元起

汽车要闻

阿维塔07L Max纯电版上市 限时权益后21.59万元

态度原创

亲子
数码
健康
游戏
教育

亲子要闻

美国城郊夏日雨后,熊孩子在路边水洼旁做好等待

数码要闻

显卡价格太荒诞:单卡比整机还贵30%!用户直接买整机拆卡

查不出猝死风险?可能是项目没做对

《逃离塔科夫》开放感染区《竞技场》加入近战模式

教育要闻

121项研究生一流核心课程项目拟立项!该地公示这一名单

无障碍浏览 进入关怀版