温馨提示×

ubuntu jenkins为何卡顿

小樊
46
2026-10-01 09:24:13
栏目: 智能运维

Ubuntu 上 Jenkins 卡顿通常由资源不足、配置不当或插件/任务问题引起。下面按常见原因 → 排查方法 → 解决办法来说明。


一、最常见原因

1. 内存不足(最常见)

Jenkins 默认 JVM 堆内存较小,构建一多就容易卡死。

表现

  • 页面打开慢
  • 构建排队
  • top 中 java 占用高
  • 出现 OutOfMemoryError

排查

free -h
top
ps -aux | grep jenkins

解决 修改 Jenkins JVM 参数(Ubuntu 常见路径):

sudo vim /etc/default/jenkins

示例(8G 内存机器):

JAVA_ARGS="-Xms2g -Xmx4g"

重启:

sudo systemctl restart jenkins

2. CPU 被构建任务占满

  • 并发构建太多
  • 脚本死循环
  • Maven / Gradle / Docker 构建过重

排查

htop

解决

  • 限制并发构建数
  • 使用 Agent(节点)分流
  • 避免在 Master 上跑重构建

3. 磁盘空间不足或 IO 瓶颈

Jenkins 会写大量日志、artifacts、workspaces。

排查

df -h
du -sh /var/lib/jenkins/*

解决

  • 清理旧构建
  • 定期清理 workspace
  • 使用 SSD
  • 日志目录单独挂载

4. 插件过多或插件异常

  • 插件版本不兼容
  • 插件自动更新失败
  • 插件轮询 GitHub/GitLab 过频繁

排查

  • 看 /var/log/jenkins/jenkins.log
  • 禁用非必要插件

5. 使用了 Git 轮询(SCM Poll)

频繁 poll 会卡 Master。

解决

  • 改用 Webhook
  • 增大 poll 间隔

6. 反向代理(Nginx)配置问题

错误配置会导致请求阻塞。

常见错误

  • 缺少 X-Forwarded-* 头
  • keepalive 不当

7. Java 版本不兼容

  • Jenkins 新版本不支持老 Java
  • OpenJDK 版本混乱

建议

  • Jenkins 2.4xx → Java 17/21
  • 统一 JAVA_HOME

二、快速自检清单 ✅

# 内存
free -h

# CPU
top

# 磁盘
df -h

# Jenkins 日志
tail -n 200 /var/log/jenkins/jenkins.log

# 服务状态
systemctl status jenkins

三、推荐最佳实践

  • Master 只做调度
  • 构建放 Agent
  • 限制并发
  • 定期清理历史
  • JVM 内存合理设置
  • 使用 LTS 版本

如果你愿意,可以贴一下:

  • free -h
  • top 截图
  • jenkins.log 报错
  • Jenkins 版本

我可以直接帮你定位是哪一种卡顿。

0 踩