温馨提示×

jenkins在centos卡住怎么办

小樊
47
2026-09-06 10:23:47
栏目: 智能运维

Jenkins 在 CentOS 上“卡住”是一个常见但原因多样的问题。可以按下面思路一步步排查和处理。


一、先确认“卡住”的表现

不同现象对应不同原因:

  1. 页面打不开 / 访问超时
  2. 构建任务一直不动(卡在某一阶段)
  3. Jenkins 服务本身无响应(进程在但不可用)
  4. 系统整体卡顿(CPU / 内存爆了)

二、快速排查步骤(推荐顺序)

1️⃣ 看 Jenkins 服务状态

systemctl status jenkins
  • active (running) 但页面卡 → 应用层问题
  • failed / 起不来 → 配置或资源问题

重启试试(临时恢复):

systemctl restart jenkins

2️⃣ 看系统资源(最常见原因)

top
free -h
df -h

重点看:

  • 内存是否 100%(Java 很吃内存)
  • 磁盘是否满(尤其是 /var/tmp
  • CPU 是否被某个进程占满

✅ 常见情况:

  • 内存不足 → Jenkins 被 OOM Kill 或假死
  • 磁盘满 → 无法写日志 / 构建失败卡死

3️⃣ 看 Jenkins 日志

journalctl -u jenkins -n 200 --no-pager

tail -f /var/log/jenkins/jenkins.log

常见关键词:

  • OutOfMemoryError
  • PermGen space
  • deadlock
  • timeout
  • disk full

4️⃣ Java 内存不足(非常常见)

编辑:

vi /etc/sysconfig/jenkins

调整:

JENKINS_JAVA_OPTIONS="-Xms512m -Xmx2048m"

保存后:

systemctl restart jenkins

✅ 如果是小服务器,建议:

  • 至少 2G 内存
  • -Xmx 不超过物理内存 70%

5️⃣ 构建卡住(Pipeline / Shell)

如果是某个 Job 卡住

  • 进 Job → 看 Console Output
  • 是否卡在:
    • git clone
    • npm install
    • docker build
    • 网络请求

可临时终止:

kill -9 <pid>

或 Jenkins 页面 → 终止构建


6️⃣ 插件或版本问题

  • 升级 Jenkins 后卡死
  • 插件不兼容

解决:

  • 安全模式启动:
systemctl stop jenkins
java -jar /usr/lib/jenkins/jenkins.war --safe
  • 禁用最近安装的插件

7️⃣ 防火墙 / 端口问题(误以为卡住)

firewall-cmd --list-ports

确认 8080(或你配置的端口)开放:

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

三、应急方案(生产环境)

如果严重影响业务:

systemctl stop jenkins
ps -ef | grep jenkins
kill -9 <pid>
systemctl start jenkins

四、长期建议

  • 单独一台机器跑 Jenkins
  • 构建放到 Agent / Slave
  • 定期清理旧构建
  • 监控内存和磁盘

如果你能补充以下信息,我可以更精准帮你定位:

  1. Jenkins 版本
  2. CentOS 版本
  3. 卡住时的具体现象
  4. jenkins.log 最后几十行

我可以直接帮你判断是内存、插件还是构建问题。

0