温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jenkins如何加速

发布时间:2026-07-16 17:59:12 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

Jenkins 的加速可以从启动速度、构建速度、流水线执行效率、资源利用等多个维度入手。下面按常见场景给你一套实用优化清单,从“立竿见影”到“进阶优化”都有。


一、加速 Jenkins 启动

1. 减少插件数量(最有效)

  • 问题:插件越多,启动越慢
  • 做法
    • 删除不用的插件
    • 避免安装“全家桶式”插件
    • 使用 jenkins-plugin-manager 精确控制插件
# 查看插件依赖
Manage Jenkins → Plugins → Installed

2. 使用轻量 JVM 参数

JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"

推荐:

  • 使用 G1GC
  • 避免过大堆内存(会拖慢 GC)

3. 禁用不需要的功能

  • 禁用:
    • 旧版本 Job 的历史记录
    • 匿名统计
    • 不用的 Agent 协议

二、加速构建(最常见瓶颈)

1. 使用缓存(非常重要)

Maven

mvn clean package -DskipTests \
  -Dmaven.repo.local=/opt/maven-repo

或使用:

  • Jenkins Shared Cache
  • Nexus / Artifactory

NPM

npm ci --cache ~/.npm --prefer-offline

Docker

  • 使用 buildkit
  • 利用 layer 缓存
DOCKER_BUILDKIT=1 docker build .

2. 并行构建(Pipeline 核心)

Declarative Pipeline

stage('Build') {
    parallel {
        stage('Service A') {
            steps { sh 'make build-a' }
        }
        stage('Service B') {
            steps { sh 'make build-b' }
        }
    }
}

多模块、多服务必用


3. 减少 IO 操作

  • 避免:
    • 不必要的 archiveArtifacts
    • 大量小文件 copy
  • 使用:
    • stash / unstash 替代文件拷贝
    • 直接传递制品

三、Pipeline 优化(高级)

1. 使用 agent none

pipeline {
    agent none
    stages {
        stage('Build') {
            agent { label 'build' }
        }
    }
}

避免每个 stage 都启动 agent


2. 减少 checkout 次数

checkout scm
  • 只在必要 stage checkout
  • 使用 skipDefaultCheckout()

3. 使用 milestone + lock

避免重复构建排队:

milestone()
lock('deploy-lock') {
    // deploy
}

四、节点与资源优化

1. 使用 Agent 分布式构建

  • Master 只做调度
  • Build / Test / Deploy 分到不同 Agent
agent { label 'linux-build' }

2. 使用 Docker Agent(干净 + 快)

agent {
    docker {
        image 'maven:3.9'
    }
}

3. 限制并发构建

properties([
    disableConcurrentBuilds()
])

防止资源争抢


五、磁盘 & 系统级加速

1. 使用 SSD

  • Jenkins Home
  • Docker 数据目录
  • 构建目录

2. 定期清理

  • 构建历史
  • 工作空间
  • Docker 镜像
docker system prune -f

六、插件推荐(性能向)

插件 作用
Pipeline
Blue Ocean UI 更快
Job DSL 减少 UI 操作
Build Timeout 防止卡死
Throttle Concurrent Builds 控制并发

七、典型加速效果对比

优化项 效果
并行构建 ⬆ 30–60%
缓存依赖 ⬆ 40–70%
减少插件 启动快 50%
Docker layer 缓存 构建快 2–5 倍

八、如果你愿意,我可以进一步帮你

你可以直接告诉我:

  1. Jenkins 是 单机 / K8s / Docker
  2. 用的是 Freestyle 还是 Pipeline
  3. 构建语言(Java / Node / Go / Python)
  4. 慢在 启动 / 构建 / 部署

我可以给你针对你环境的 Jenkinsfile 优化方案

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI