在 CentOS 上优化 Jenkins 性能,可以从 系统层面、Jenkins 配置、插件与构建方式、资源隔离 四个方面入手。下面给你一套比较实用、可落地的优化方案。
java -version
编辑 /etc/security/limits.conf
jenkins soft nofile 65536
jenkins hard nofile 65536
jenkins soft nproc 4096
jenkins hard nproc 4096
sysctl -w net.core.somaxconn=65535
sysctl -w vm.swappiness=10
Jenkins 对 磁盘 IO 非常敏感(构建日志、workspace)
修改 Jenkins 启动参数(CentOS 通常是 /etc/sysconfig/jenkins 或 systemd)
JENKINS_JAVA_OPTIONS="-Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCDurationMillis=200"
建议:
Manage Jenkins → Configure System
# of executors 不要过高(通常 = CPU 核数)pipeline {
agent { label 'build-node' }
}
安装插件:
options {
buildDiscarder(logRotator(numToKeepStr: '20'))
disableConcurrentBuilds()
}
常见问题插件:
agent {
docker {
image 'maven:3.8'
}
}
| 现象 | 原因 | 解决 |
|---|---|---|
| Jenkins 卡死 | 内存不足 | 调 JVM |
| 构建慢 | 磁盘 IO | SSD |
| CPU 飙高 | 并发太多 | 限 executor |
| 页面卡 | 插件多 | 精简 |
✅ JDK 11/17
✅ Xms = Xmx
✅ G1GC
✅ Agent 分离
✅ 构建历史限制
✅ SSD
如果你愿意,可以告诉我:
我可以直接给你 定制优化方案或 Jenkinsfile 示例。