关于GitHub Runner中parallelism含义及GitHub托管Runner的max parallelism配置的疑问
关于GitHub Runner中parallelism含义及GitHub托管Runner的max parallelism配置的疑问
嘿,这个问题确实很容易搞混,我来给你掰扯清楚!
你的第二种理解是完全正确的!
GitHub托管的Runner是每个Job对应一个独立的VM(或者容器,具体看你选的Runner类型),而这个「max parallelism」设置的,就是你的仓库/组织在同一时间能运行的这类Runner实例的最大数量。
举个例子:如果你把这个值设为5,那GitHub最多会同时给你启动5个独立的VM/容器,每个里面跑一个Job。要是这时候有第6个Job进来,它就得乖乖排队,等前面某个Job跑完、对应的VM被释放后才能启动。
那第一种理解对应的是什么情况呢?其实那是自托管Runner的「并发作业」配置场景——自托管Runner你可以在同一台机器上设置允许同时跑多个Job,但GitHub托管的Runner完全是单Job实例,资源都是完全隔离的,不存在多个Job共享一个VM的情况。
至于第三种主流解释?其实不存在啦,核心就是记住:GitHub托管Runner的每个实例只跑一个Job,max parallelism就是同时能运行的这类实例的上限。如果你的仓库活跃度很高,Job经常排队,那肯定要提高这个数值,这样就能同时启动更多独立的Runner来处理任务啦。
备注:内容来源于stack exchange,提问作者Jon Watte




