在 CentOS 上优化 Jenkins,通常可以从系统层面、Jenkins 配置、插件与任务设计、资源监控几个方面来做。下面给你一份比较实用的优化清单(适用于 CentOS 7/8 以及 Jenkins 长期支持版)。
编辑 /etc/sysctl.conf:
vm.swappiness = 10
net.core.somaxconn = 1024
执行:
sysctl -p
Jenkins 会开很多连接(agent、git、http)。
编辑 /etc/security/limits.conf:
jenkins soft nofile 65536
jenkins hard nofile 65536
Jenkins 对磁盘 IO 敏感(workspace、构建日志、artifacts)。
建议:
/var/lib/jenkins 使用 SSD[Service]
LimitNOFILE=65536
MemoryLimit=4G
修改后:
systemctl daemon-reload
systemctl restart jenkins
编辑:
/etc/sysconfig/jenkins
或(CentOS 8):
/etc/default/jenkins
示例(4C8G 机器):
JENKINS_JAVA_OPTIONS="-Xms2g -Xmx4g -XX:+UseG1GC -Dfile.encoding=UTF-8"
推荐:
-Xmx2g-Xmx4g ~ 8g每个 Job:
Discard old builds
- Days to keep: 7
- Max builds: 20
全局建议脚本或策略统一管理。
Pipeline 优势:
路径:
Manage Jenkins → Plugins
常见可禁用:
不要让 Master 执行构建。
Manage Jenkins → Nodes
pipeline {
agent {
docker { image 'maven:3.8' }
}
stages {
stage('Build') {
steps {
sh 'mvn package'
}
}
}
}
好处:
/etc/logrotate.d/jenkins
示例:
/var/log/jenkins/*.log {
daily
rotate 7
compress
missingok
}
推荐插件:
| 问题 | 原因 | 解决 |
|---|---|---|
| Jenkins 卡死 | 内存不足 | 调大 JVM |
| 构建慢 | Master 执行 | 用 Agent |
| 磁盘爆满 | 历史太多 | 清理策略 |
| 插件冲突 | 版本不兼容 | 升级/禁用 |
JENKINS_JAVA_OPTIONS="-Xms2g -Xmx4g -XX:+UseG1GC"
Executors = 2 (Master)
Agent = 4
Build history = 7 days
如果你愿意,可以告诉我:
我可以给你一套针对性的优化方案。