在 CentOS 上运行 Jenkins 时,调优主要围绕系统资源、JVM、Jenkins 配置、插件与构建效率、磁盘与网络几个方面。下面给你一份比较实用的调优清单(偏生产环境)。
Jenkins 会打开大量文件(构建日志、管道、agent 连接)。
# 查看当前限制
ulimit -n
# 修改限制
vi /etc/security/limits.d/20-nofile.conf
jenkins soft nofile 65535
jenkins hard nofile 65535
重启 Jenkins 后生效。
swapoff -a
并在 /etc/fstab 中注释 swap 行(避免重启生效)。
vi /etc/sysctl.conf
net.core.somaxconn = 1024
net.ipv4.tcp_tw_reuse = 1
vm.swappiness = 10
sysctl -p
CentOS 通常使用 systemd:
vi /etc/systemd/system/jenkins.service.d/override.conf
或编辑:
vi /etc/sysconfig/jenkins
关键 JVM 参数示例(8G 内存服务器):
JENKINS_JAVA_OPTIONS="-Xms4g -Xmx4g -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1g -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8"
说明:
-Xms = -Xmx:避免动态扩容修改后:
systemctl daemon-reload
systemctl restart jenkins
Manage Jenkins → Configure System
# of executors(主节点建议 0~2)✅ 生产建议:Master 不跑构建
减少 Master 压力。
查看:
Manage Jenkins → Plugins → Installed
stage 并发parallel(
buildA: { ... },
buildB: { ... }
)
-Dmaven.repo.local=/cache/mavennpm cache/var/lib/jenkins
/var/lib/jenkins/workspace
使用 SSD 或高性能磁盘。
插件推荐:
vi /etc/logrotate.d/jenkins
/var/log/jenkins/jenkins.log {
daily
rotate 7
compress
missingok
notifempty
}
thinBackup 插件)# 内存使用
free -h
# Jenkins 进程
ps -ef | grep jenkins
# GC 情况
jstat -gcutil <pid> 1000
如果你愿意,可以告诉我:
我可以直接给你一套针对性的调优配置。