温馨提示×

jenkins ubuntu怎么优化

小樊
35
2026-09-07 08:49:34
栏目: 智能运维

Ubuntu 上优化 Jenkins 一般从 系统资源、JVM 参数、并发调度、插件与存储 几个方面入手。下面按实战优先级给你一份优化清单。


一、系统与硬件层面优化

1. 使用合适的硬件配置

  • Master 建议
    • CPU:4 核以上
    • 内存:8GB 起步(大型项目 16GB+)
    • 磁盘:SSD(非常重要)
  • 构建任务尽量交给 Agent
    • Master 只做调度,不做重构建

2. 调整 Ubuntu 系统参数

# 增加文件描述符限制
sudo vim /etc/security/limits.conf
jenkins soft nofile 65536
jenkins hard nofile 65536
# 优化内核参数
sudo vim /etc/sysctl.conf
vm.swappiness=10
fs.file-max=2097152
sudo sysctl -p

二、Jenkins JVM 参数优化(最关键)

1. 修改 Jenkins 启动参数

Ubuntu 下通常在:

/etc/default/jenkins

或(systemd):

/etc/systemd/system/jenkins.service.d/override.conf

示例(8G 内存):

JAVA_OPTS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -Djenkins.model.Jenkins.cron=H/15"

推荐 GC:

  • G1GC(默认推荐)
  • 大内存可试 ZGC(JDK 17+)

三、Jenkins 自身配置优化

1. 限制 Master 构建

Manage Jenkins → Configure System
→ # of executors = 0(或 1)

2. 使用 Agent(Node)

  • 使用:
    • SSH Agent
    • Docker Agent
    • Kubernetes Agent(最佳实践)

3. 并发与队列优化

Manage Jenkins → Configure System
→ Jenkins Location → 
→ 适度提高 # of executors

四、插件与构建优化

1. 精简插件

  • 删除不用的插件
  • 避免安装“全家桶”

常用优化插件:

  • Job DSL
  • Pipeline
  • Blue Ocean(可选)
  • Metrics

2. 使用 Pipeline 而非 Freestyle

pipeline {
    agent { label 'docker' }
    stages {
        stage('Build') {
            steps {
                sh 'make'
            }
        }
    }
}

3. 构建缓存

  • Maven:
mvn -Dmaven.repo.local=/opt/cache/maven
  • Docker:
docker build --cache-from image:latest

五、存储与日志优化

1. 定期清理

Manage Jenkins → Script Console
Jenkins.instance.builds.each { it.delete() }

或使用插件:

  • ThinBackup
  • Build Discarder

2. 日志优化

/etc/default/jenkins
JAVA_OPTS="$JAVA_OPTS -Dhudson.log.dirname=/var/log/jenkins"

六、高级优化(可选)

1. Nginx 反向代理 + 缓存

proxy_cache jenkins_cache;

2. 使用外部数据库(大规模)

  • 不推荐新手
  • 可用 PostgreSQL + Jenkins Configuration as Code

七、快速检查是否该优化

✅ 出现以下情况就需要优化:

  • Jenkins 页面卡顿
  • 构建排队严重
  • CPU 长期 > 80%
  • 内存频繁 GC

如果你愿意,可以告诉我:

  • Jenkins 版本
  • Ubuntu 版本
  • 构建类型(Java / Node / Docker / K8s)
  • 当前配置(CPU / 内存 / executor 数)

我可以直接帮你 给出一份专属优化参数

0