温馨提示×

ubuntu jenkins怎么优化内存

小樊
41
2026-09-28 11:27:56
栏目: 智能运维

在 Ubuntu 上运行 Jenkins 时,内存优化主要围绕 JVM 参数、系统资源、插件和构建方式 来做。下面按实战优先级给你一套可落地的方案。


一、最核心:优化 Jenkins JVM 内存参数(最重要)

Jenkins 是 Java 应用,默认内存配置往往偏低或偏高。

1️⃣ 修改 Jenkins 启动参数(Ubuntu)

Jenkins 在 Ubuntu 一般通过 systemd 启动。

sudo systemctl edit jenkins

添加或修改:

[Service]
Environment="JAVA_OPTS=-Xms512m -Xmx2048m -XX:MaxMetaspaceSize=512m -Djava.awt.headless=true"

常用推荐值(根据服务器内存):

服务器内存 建议配置
2G -Xms256m -Xmx1024m
4G -Xms512m -Xmx2048m
8G+ -Xms1g -Xmx4g

⚠️ 不要给 Jenkins 分配超过物理内存 70%

保存后:

sudo systemctl daemon-reload
sudo systemctl restart jenkins

二、减少 Jenkins 自身内存占用

2️⃣ 关闭不必要的功能

系统管理 → 全局安全配置

  • 关闭:Agent → Controller 连接(不用就关)

系统管理 → 系统配置

  • 禁用:
    • 匿名用户只读
    • 旧构建保留策略

3️⃣ 清理历史构建(非常有效)

构建记录是 Jenkins 内存杀手。

每个 Job 配置中:

  • 丢弃旧构建
  • 保留:
    • 构建天数:7
    • 最大构建数:10

或使用脚本批量清理。


三、插件优化(内存黑洞)

4️⃣ 删除不用的插件

系统管理 → 插件管理 → 已安装

常见高内存插件:

  • Pipeline: Groovy
  • Job DSL
  • Matrix Project(不用就删)

✅ 插件越少,内存越稳


四、构建方式优化(关键)

5️⃣ 使用 Agent / Node(不要在主节点构建)

强烈建议:

  • 主节点只做调度
  • 构建在 Agent 上执行
pipeline {
  agent { label 'build-agent' }
}

这样主 Jenkins 内存不会随构建暴涨。


6️⃣ 构建中限制 JVM 内存

例如 Maven:

mvn clean package -Xmx1024m

Gradle:

org.gradle.jvmargs=-Xmx1024m

五、Ubuntu 系统层优化

7️⃣ 调整 swappiness(减少卡顿)

sudo sysctl vm.swappiness=10

永久:

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

8️⃣ 限制 Jenkins 进程内存(可选)

sudo systemctl edit jenkins
[Service]
MemoryMax=3G

六、监控 Jenkins 内存

9️⃣ 安装监控

  • 插件:Monitoring
  • 或:
top -p $(pgrep -f jenkins)

七、推荐最低配置(经验值)

场景 内存
学习 2G
小团队 4G
企业级 8G+(Agent 分离)

总结一句话

Jenkins 内存优化 = 合理 JVM 参数 + 不主节点构建 + 少插件 + 清历史

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

  • 服务器内存多大
  • Jenkins 版本
  • 是否用 Pipeline / Docker

我可以直接给你一套 精准配置。

0 踩