温馨提示×

为什么centos jenkins卡顿

小樊
45
2026-10-23 20:54:33
栏目: 智能运维

CentOS 上 Jenkins 卡顿是非常常见的现象,通常不是单一原因,而是资源、配置、插件、任务类型叠加造成的。下面按最常见 → 较少见给你系统梳理原因和对应解决办法。


一、最常见原因(90% 卡顿来自这里)

1️⃣ 内存不足(Jenkins 是 Java 应用,非常吃内存)

Jenkins 默认堆内存往往不够,尤其是:

  • 插件多
  • 构建任务多
  • 并发构建

表现:

  • 页面打开慢
  • 构建卡在队列
  • 控制台日志刷新慢

解决:

# 查看内存
free -h
top

修改 Jenkins JVM 参数(CentOS 常见路径):

/etc/sysconfig/jenkins

或

/etc/systemd/system/jenkins.service.d/override.conf

示例(8G 机器):

JAVA_OPTS="-Xms2g -Xmx4g"

改完:

systemctl daemon-reload
systemctl restart jenkins

✅ 经验值:

  • 小公司:2–4G
  • 中型:4–8G
  • 构建多:8G+

2️⃣ CPU 被构建任务占满

CentOS 上 Jenkins 默认会在本机跑构建,如果:

  • Maven / Gradle / npm 构建
  • 单元测试
  • 打包镜像

CPU 直接打满,UI 就卡。

解决:

  • 使用 Agent(节点) 分离构建
  • 限制并发构建数
Jenkins → 节点管理 → 新建 Agent

3️⃣ 磁盘 IO 瓶颈(非常容易被忽视)

Jenkins:

  • 写日志
  • 存构建历史
  • 拉代码
  • 缓存依赖

如果磁盘是:

  • 云服务器低 IO 盘
  • 机械盘
  • /var 分区满

就会极其卡。

检查:

df -h
iostat -x 1

解决:

  • 构建目录放 SSD
  • 清理旧构建
  • 限制历史保留数量

二、Jenkins 自身配置问题

4️⃣ 插件过多 / 插件冲突

很多 Jenkins 卡死是因为:

  • 插件自动更新失败
  • 插件互相依赖冲突
  • 不必要的插件太多

解决:

  • 禁用不用的插件
  • 升级 Jenkins 到稳定 LTS
  • 查看日志:
/var/log/jenkins/jenkins.log

5️⃣ 构建历史太多

Jenkins 默认不限制历史,几年后:

  • 几万次构建
  • 页面加载极慢

解决:

  • 每个 Job 设置:
保留构建天数:30
保留构建数:50

三、CentOS 系统层面的问题

6️⃣ swap 没开 or 太小

Jenkins 内存一旦超,就会卡死。

free -h
swapon -s

建议:

  • 至少 2–4G swap

7️⃣ Java 版本不兼容

CentOS 默认可能是:

  • Java 8(太老)
  • Java 11(推荐)
  • Java 17(新 Jenkins 推荐)

查看:

java -version

四、网络问题(容易被忽略)

8️⃣ 拉代码慢(Git / Maven 中央仓库)

  • GitHub 慢
  • Maven 依赖下载慢
  • 代理没配

解决:

  • 配 Maven 镜像
  • Git 使用国内镜像
  • Jenkins 配代理

五、快速自查清单(你可以照着做)

# 1. 内存
free -h

# 2. CPU
top

# 3. 磁盘
df -h
iostat -x 1

# 4. Jenkins 日志
tail -f /var/log/jenkins/jenkins.log

# 5. 构建是否在本机
Jenkins → 节点

六、我可以直接帮你定位

你可以补充一下:

  1. CentOS 版本(7 / 8 / Stream)
  2. Jenkins 版本
  3. 内存 & CPU 配置
  4. 是否在本机构建
  5. 卡在主页 / 构建中 / 日志输出?

我可以直接给你针对性优化方案。

0 踩