优化 Debian 上的 Jenkins,可以从系统资源、JVM、Jenkins 本身、插件与任务、以及架构层面几个维度来做。下面给你一套比较完整、可落地的优化方案(适用于 Debian 10/11/12,Jenkins LTS)。
最低建议:
查看资源:
top
htop
free -h
Jenkins 会打开大量文件(构建日志、管道、插件)。
ulimit -n
建议设置为 65535:
sudo nano /etc/security/limits.conf
添加:
jenkins soft nofile 65535
jenkins hard nofile 65535
编辑 Jenkins service:
sudo systemctl edit jenkins
示例:
[Service]
LimitNOFILE=65535
MemoryMax=8G
Jenkins 是 Java 应用,JVM 调优直接影响性能。
编辑:
sudo nano /etc/default/jenkins
找到 JAVA_OPTS 或 JENKINS_JAVA_OPTIONS:
JAVA_OPTS="-Xms2g -Xmx4g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError"
说明:
-Xms:初始堆内存-Xmx:最大堆内存(不要超过物理内存 50–70%)G1GC:适合 Jenkins 的垃圾回收器重启:
sudo systemctl restart jenkins
进入:
Manage Jenkins → System
防止磁盘被日志占满。
Pipeline 优势:
示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'make'
}
}
}
}
Manage Jenkins → Plugins → Installed
删除:
插件过多会:
只装必要的,例如:
不要让 Jenkins Master 跑构建任务
Manage Jenkins → Nodes
mvn clean package -DskipTests
npm ci --cache .npm
Pipeline 示例:
parallel(
unitTests: { sh 'make test' },
lint: { sh 'make lint' }
)
sudo du -sh /var/lib/jenkins/*
重点清理:
jobs/*/buildsworkspacelogs编辑:
sudo nano /etc/logrotate.d/jenkins
示例:
/var/log/jenkins/jenkins.log {
daily
rotate 7
compress
missingok
}
减少 Jenkins 本身处理静态资源的压力。
你可以按这个顺序做:
如果你愿意,我可以:
你可以直接贴:
free -h
nproc
java -version