温馨提示×

jenkins在centos卡顿怎么办

小樊
45
2026-10-03 08:36:37
栏目: 智能运维

Jenkins 在 CentOS 上卡顿,通常和系统资源、JVM 配置、插件、磁盘 IO、网络有关。下面按「先快后慢、先常见后少见」给你一套排查和解决办法。


一、先确认是不是“真卡”

在 Jenkins 卡顿时,执行:

top
free -h
df -h
iostat -x 1

重点看:

  • CPU 是否 100%
  • 内存是否用完(尤其是 swap 是否被用)
  • 磁盘是否 100% 使用率(IO wait 高)
  • Jenkins 进程是否占资源异常

二、最常见原因 & 对应解决办法

1️⃣ JVM 内存配置太小(最常见)

Jenkins 默认 JVM 内存往往不够。

查看当前配置:

ps -ef | grep jenkins

如果是 yum 安装,修改:

/etc/sysconfig/jenkins

修改:

JENKINS_JAVA_OPTIONS="-Xms2g -Xmx4g -XX:PermSize=512m -XX:MaxPermSize=1g"

(根据服务器内存调整,例如 8G 服务器可设 2–4G)

重启:

systemctl restart jenkins

✅ 这是最立竿见影的优化


2️⃣ 磁盘满了 / inode 满了

df -h
df -i

常见原因:

  • /var/lib/jenkins 下 build 日志太多
  • workspace 没清理

清理旧构建:

  • Jenkins → 项目 → 配置 → Discard old builds
  • 或手动清理:
rm -rf /var/lib/jenkins/jobs/*/builds/*

3️⃣ 插件太多 / 插件异常

  • 禁用不常用插件
  • 更新插件到稳定版
  • 卡在启动?可安全模式启动:
systemctl stop jenkins
java -jar /usr/lib/jenkins/jenkins.war --safe

4️⃣ 并发构建太多

  • 系统并发执行数过高
  • 节点(agent)不足

解决:

  • Jenkins → Manage Jenkins → Configure System
  • 限制 # of executors
  • 使用独立 agent 而不是 master 构建

5️⃣ 使用了 root 用户运行(不推荐)

root 权限 + 插件问题容易卡死

建议:

useradd jenkins
chown -R jenkins:jenkins /var/lib/jenkins

6️⃣ CentOS 本身问题

  • CentOS 7 + 老内核
  • SELinux / firewalld 干扰

可临时测试:

setenforce 0
systemctl stop firewalld

(生产环境谨慎)


三、进阶优化(稳定后做)

✅ 使用 Nginx 反代(减少 Jenkins 自身压力)

✅ 使用外部数据库(不推荐,但若大规模可用)

✅ 拆分 master / agent 架构

✅ 定期重启(低峰期)

systemctl restart jenkins

四、总结一句话

90% 的 Jenkins 卡顿,都是 JVM 内存太小 + 磁盘满 + 插件问题


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

  • CentOS 版本
  • Jenkins 安装方式(yum / war / docker)
  • 服务器内存
  • 卡在「启动」还是「构建」

我可以直接给你一套针对你环境的配置。

0 踩