下面从系统层、Jenkins 本身、构建效率、资源与安全几个维度,系统性地讲一下 Ubuntu 上 Jenkins 的优化实践,适合生产环境参考。
/var/lib/jenkins(workspace、日志、产物)df -h /var/lib/jenkins
Jenkins 并发多时会遇到:
too many open files
修改:
# /etc/security/limits.conf
jenkins soft nofile 65536
jenkins hard nofile 65536
jenkins soft nproc 4096
jenkins hard nproc 4096
systemctl edit jenkins
示例:
[Service]
LimitNOFILE=65536
Nice=-5
apt-cache policy jenkins
保持 LTS,避免频繁不兼容升级。
编辑:
/etc/default/jenkins
# 或
/etc/systemd/system/jenkins.service.d/override.conf
示例(8G 内存):
JAVA_OPTS="-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCpauseMillis=200"
建议:
PermGen 问题(JDK11+ 已无)不要所有任务都在 Master 上跑
/root/.m2/repository
挂载到 Agent 或共享存储
~/.npm
✅ 推荐:
pipeline {
agent { label 'docker' }
stages {
stage('Build') {
steps {
sh 'make build'
}
}
}
}
❌ 避免:
checkout使用:
parallel {}
常用推荐:
# 旧构建
Jenkins → 项目 → 构建保留策略
# 工作空间
# 定时清理 workspace
/var/lib/jenkins
推荐:
top
htop
iostat -x 1
| 项目 | 优化前 | 优化后 |
|---|---|---|
| 构建等待 | 10 min | < 1 min |
| Master 负载 | 高 | 低 |
| 磁盘占用 | 爆炸 | 可控 |
| 稳定性 | 常重启 | 长期运行 |
如果你愿意,可以告诉我:
我可以直接给你针对性配置方案。