启用并行构建可显著缩短发布耗时,核心是拆分独立任务并发执行:先调优节点执行器数量(设为cpu核心数),再用pipeline的parallel指令并行阶段,结合标签化agent分布式调度,并辅以缓存与步骤精简。

直接在 Jenkins 里启用并行构建,能明显缩短发布耗时——关键不是堆资源,而是把能同时做的事拆开跑。
调整节点并发数(最基础)
这是所有并行能力的前提。Jenkins 默认只配 2 个 Executor,基本不够用。
- 进 Manage Jenkins → Configure System,找到 # of executors
- 设为服务器物理 CPU 核心数(例如 4 核机器设为 4;8 核可设 6–8)
- 别盲目调高:超过 CPU 核心数太多反而引发上下文切换开销,拖慢整体速度
用 Pipeline 的 parallel 拆分阶段(最常用)
适合前后端分离、多模块、测试分类等天然可并行的场景。总时间≈最长那个分支的耗时。
- 声明式写法示例:
agent any
stages {
stage('Build & Test') {
parallel {
stage('Frontend') { steps { sh 'npm ci && npm run build' } }
stage('Backend') { steps { sh 'mvn clean package -DskipTests' } }
stage('Unit Tests') { steps { sh './run-unit.sh' } }
}
}
stage('Deploy') { steps { sh 'kubectl apply -f k8s/' } }
}
}
- 注意:各并行 stage 必须彼此独立,不能读写同一临时文件或共享变量
- 如果模块数量动态变化(如微服务自动发现),可用
script { parallel parallelTasks }动态生成任务列表
启用分布式构建(应对负载瓶颈)
单台机器再怎么优化也有上限。把任务分发到多个 Agent 节点,才是横向扩展的关键。
- 添加新节点:Manage Jenkins → Manage Nodes and Clouds → New Node,选 Permanent Agent
- 给节点打标签(如
linux-amd64、docker-enabled),后续 Pipeline 中用agent { label 'linux-amd64' }精准调度 - 前端构建用 Node 镜像、后端用 Maven 镜像、测试用 Python 镜像——不同任务跑在最适合的环境里,避免容器反复拉取和初始化
配合缓存与精简步骤(不并行也提速)
并行只是加速手段之一,若每个分支本身很慢,效果仍有限。
- 对 Maven/Gradle/NPM 依赖加缓存:用
stash+unstash复用~/.m2/repository或node_modules - 跳过非必要环节:单元测试阶段默认加
-DskipTests,真要跑测试再单独开 stage - 避免大日志输出:用
sh 'mvn ... | grep -v "INFO"过滤冗余行,减少磁盘 I/O 和归档压力











