温馨提示×

centos jenkins部署如何进行性能调优

小樊
42
2026-01-10 23:08:21
栏目: 智能运维

CentOS 上 Jenkins 性能调优实操指南

一 硬件与系统层优化

  • 优先使用 SSD/NVMe,并尽量将 JENKINS_HOME、构建工作区、归档构件 分别放在不同磁盘或分区,降低 I/O 争用。
  • 适度提升 内存与 CPU:内存不足会导致频繁 GC 或 OOM,CPU 密集任务应增加核心或采用多节点分担。
  • 使用 Nginx/HAProxy 做反向代理与静态资源缓存(动静分离),可显著降低 Jenkins 前端页面加载时间。
  • 保持系统健康:合理的 ulimit -n(文件句柄)、及时清理无用文件、监控磁盘空间与 IOPS。

二 JVM 与容器内存设置

  • -Xms 与 -Xmx 设为相同值,避免运行期反复扩容堆;建议预留 20%–30% 内存给操作系统与其他进程。
  • 示例(系统服务方式):编辑 /etc/default/jenkins/etc/sysconfig/jenkins,设置
    JAVA_OPTS=“-Xms4g -Xmx4g -Djava.awt.headless=true”
    修改后执行:systemctl restart jenkins;在 Manage Jenkins → System Information 检查 Max Heap Size 是否生效。
  • 示例(war 直接运行):
    nohup java -Xms4g -Xmx4g -Djava.awt.headless=true -jar /opt/jenkins.war --httpPort=8080 >/var/log/jenkins.out 2>&1 &
  • 示例(Docker):
    docker run -d -p 8080:8080 -p 50000:50000 --memory=8g jenkins/jenkins:lts
    同时在容器内设置 JAVA_OPTS(如在 Dockerfile 或启动脚本中)以匹配容器内存上限。
  • 注意:堆设置过大可能引发长时间 GC 停顿,过小会频繁 OOM,需结合构建并发与内存占用实测微调。

三 并发与构建策略

  • 控制 执行器(Executors)数量:单机执行器总数不宜超过 CPU 物理核心数;I/O 密集可适当下调,避免磁盘抖动与上下文切换过多。
  • 禁止在 Master 上运行业务构建,仅保留轻量管理任务;通过 标签(Label) 将重任务调度到 Agent。
  • SCM 推送(Webhook)替代轮询,减少无谓调度与资源浪费。
  • 采用 分布式构建:增加 Agent/Slave 节点分散负载,Master 专注调度与 UI。
  • 合理使用 并行阶段(parallel) 拆分测试/构建步骤,显著缩短总耗时。
  • 设置 构建超时队列超时,及时释放卡死或异常任务占用的资源。

四 存储与仓库加速

  • 定期 清理旧构建与工作空间:在 Manage Jenkins → Script Console 执行
    hudson.model.WorkspaceCleanupThread.disabled = true
    并在每个 Job 配置 “Discard old builds(保持构建天数/最大个数)”,避免磁盘被历史数据撑爆。
  • 优化依赖下载速度:将 Maven、npm、yarn 等仓库改为国内镜像源,减少网络等待。
  • 若前端构建依赖缓存,评估是否关闭定时清理工作空间(谨慎评估磁盘占用与一致性)。

五 插件、监控与维护

  • 精简插件:卸载未使用/低质量插件,减少 UI 与后台 Hook 开销;保持插件 及时更新 以获取性能修复。
  • 前端性能优化:谨慎使用会引入 延迟加载/多次权限校验 的视图插件(如某些 Dashboard/嵌套视图),必要时用 Folders 插件 或外部面板替代。
  • 监控与容量规划:使用 Jenkins Performance Plugin 等工具分析构建耗时、队列与节点负载;当 Job 数量 > 1000 或 UI 明显变慢时,考虑拆分 Master 或扩展集群。
  • 建议建立 备份与恢复 机制(配置、任务与凭据),并定期演练。

0