1、如何提升Jenkins的Job并行构建数
默认情况下,Jenkins只配置了2个Executor,即只允许最多2个Job同时构建,这个值可以修改:
在Manage Jenkins=>Configure System里,找到 # of executors,修改这个值就好,注意不要太大,不然机器卡了。
一般建议按CPU核数来配置。
2、同一个Job如何并行执行?
默认情况下,同一个Job启动了多个构建时,在前一个构建未结束前,第二个构建不会启动,会提示jenkins pending is already in progress,第一个结束后,才会启动第二个构建。
这也是比较安全的作法,避免Job的一些数据冲突。
如果你确实希望一个Job的多个构建能同时启动,在Job的配置页面,有一个选项:Execute concurrent builds if necessary,勾选它即可。

3、多个Job如何互斥,防止并行?
只要有足够的Jenkins Executor,不同的Job就可以并行启动构建。
有时我们希望不同的Job间要互斥,某一个Job在构建中时,禁止另一个Job启动。
这个需要依赖一个插件:lockable resources,安装完插件,要先配置资源(其实就是字符串)
-
进入
Manage Jenkins=>Configure System,找到Lockable Resources Manager,点击Add Lockable Resource:Resource Name: 必填,用于加锁的字符串,不能有空格,比如I_am_a_lock,建议由字母数字下划线组成Description: 可选,说明文字,无作用Labels: 可选,用于加锁的字符串子集,允许多个字符串,用空格区分,比如aaa bbb cccReserved by:可选,不为空表示该资源处于维护中,此时所有依赖此资源的Job,都会处于挂起状态:(pending—Waiting for resources with xxx)
注:这么配置完后,我们就有了4个资源,可以用于加锁:I_am_a_lockaaabbbccc

-
配置好资源后,进入需要互斥的每个Job的配置页,勾选
This build requires lockable resources,在下面的- 只在
Resources里输入上面配置的I_am_a_lock - 只在
Label里输入上面配置的bbb - 注意:
Resources和Label,只能输入一个,另一个必须为空 - 注意:需要互斥的每个Job都要配置一遍,且配置要相同
- 只在
-
OK,启动第一个Job,再启动第二个Job:
- 如果此时第一个未完成,第二个会提示等待
(pending—Waiting for resources with label bbb) - 第一个Job的
Console Output里会有如下字样,启动时加锁,结束时释放锁:
- 如果此时第一个未完成,第二个会提示等待
22:24:14 [lockable-resources] acquired lock on [I_am_a_lock]
....
22:24:29 [lockable-resources] released lock on [I_am_a_lock]



















