温馨提示×

centos jenkins怎样调优

小樊
45
2026-09-12 04:47:23
栏目: 智能运维

在 CentOS 上运行 Jenkins 时,调优主要围绕系统资源、JVM、Jenkins 配置、插件与构建效率、磁盘与网络几个方面。下面给你一份比较实用的调优清单(偏生产环境)。


一、系统层面调优(CentOS)

1. 文件句柄数(非常重要)

Jenkins 会打开大量文件(构建日志、管道、agent 连接)。

# 查看当前限制
ulimit -n

# 修改限制
vi /etc/security/limits.d/20-nofile.conf
jenkins soft nofile 65535
jenkins hard nofile 65535

重启 Jenkins 后生效。


2. 关闭 swap(如内存充足)

swapoff -a

并在 /etc/fstab 中注释 swap 行(避免重启生效)。


3. 调整内核参数(可选)

vi /etc/sysctl.conf
net.core.somaxconn = 1024
net.ipv4.tcp_tw_reuse = 1
vm.swappiness = 10
sysctl -p

二、Jenkins JVM 调优(最关键)

1. 修改 Jenkins 启动参数

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:避免动态扩容
  • G1GC:适合大内存
  • HeapDump:OOM 时排查问题

修改后:

systemctl daemon-reload
systemctl restart jenkins

三、Jenkins 自身配置调优

1. 控制构建并发数

Manage Jenkins → Configure System

  • # of executors(主节点建议 0~2)
  • 构建任务交给 Agent(Node)

✅ 生产建议:Master 不跑构建


2. 使用 Agent(强烈推荐)

  • Linux Agent
  • Docker Agent
  • Kubernetes Agent

减少 Master 压力。


3. 禁用不必要的定时任务

  • 禁用旧版本清理频率过高的任务
  • 控制 cron 触发密度

四、插件与构建优化

1. 精简插件

  • 删除不用的插件
  • 避免“插件地狱”

查看:

Manage Jenkins → Plugins → Installed

2. 使用 Pipeline 而非 Freestyle

  • Pipeline 更易并行
  • 可使用 stage 并发
parallel(
  buildA: { ... },
  buildB: { ... }
)

3. 构建缓存与依赖加速

  • Maven:-Dmaven.repo.local=/cache/maven
  • npm:npm cache
  • Docker:layer cache

五、磁盘与日志调优

1. 单独挂载构建目录

/var/lib/jenkins
/var/lib/jenkins/workspace

使用 SSD 或高性能磁盘。


2. 控制构建历史

  • 每个 Job 限制历史数量
  • 定期清理 workspace

插件推荐:

  • Workspace Cleanup
  • Build Discarder

3. 日志轮转

vi /etc/logrotate.d/jenkins
/var/log/jenkins/jenkins.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

六、安全与稳定性

  • 使用 Nginx 反向代理 + keepalive
  • 启用 HTTPS
  • 定期备份(thinBackup 插件)
  • 使用 LTS 版本 Jenkins

七、快速自检命令

# 内存使用
free -h

# Jenkins 进程
ps -ef | grep jenkins

# GC 情况
jstat -gcutil <pid> 1000

如果你愿意,可以告诉我:

  • ✅ Jenkins 版本
  • ✅ 服务器内存 / CPU
  • ✅ 是否使用 Docker / K8s
  • ✅ 主要构建类型(Java / 前端 / 多语言)

我可以直接给你一套针对性的调优配置。

0 踩