温馨提示×

centos jenkins为何宕机

小樊
35
2026-09-18 10:43:38
栏目: 智能运维

CentOS 上的 Jenkins **突然宕机(停止运行 / 无法访问)**通常不是单一原因,常见原因和排查思路如下:


一、最常见原因

1. 内存不足(OOM)

Jenkins + 构建任务(Maven / npm / Docker)非常吃内存。

表现

  • Jenkins 进程消失
  • 日志中无明确错误
  • 系统日志中有 Out of memory: Kill process

排查

# 查看系统日志
sudo grep -i "killed process" /var/log/messages
sudo dmesg | grep -i oom

# 查看 Jenkins 内存配置
ps -ef | grep jenkins

解决

  • 增大服务器内存
  • 调整 Jenkins JVM 参数(见下文)

2. Jenkins 服务未设置开机/异常退出

如果是 systemd 启动:

systemctl status jenkins
journalctl -u jenkins -n 100

常见问题:

  • 手动 kill 后未重启
  • 服务器重启后 Jenkins 未自启

解决

systemctl enable jenkins
systemctl start jenkins

3. 磁盘空间满(最常见之一)

Jenkins 会持续写入:

  • 构建日志
  • workspace
  • 插件缓存

排查

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

解决

  • 清理旧构建
  • 删除无用 workspace
  • 扩容磁盘

4. Java 崩溃 / JVM 异常

Jenkins 依赖 Java。

表现

  • jenkins.log 中有 java.lang.OutOfMemoryError
  • hs_err_pid*.log 文件生成

排查

ls /var/lib/jenkins/hs_err_pid*
cat /var/log/jenkins/jenkins.log | tail -200

解决

  • 升级 Java(推荐 Java 11 / 17)
  • 调整 JVM 参数

5. 插件或版本不兼容

  • 升级 Jenkins 后插件不兼容
  • 插件自动更新失败

表现

  • 启动失败
  • 页面 500 或白屏

排查

cat /var/log/jenkins/jenkins.log

解决

  • 禁用问题插件
mv /var/lib/jenkins/plugins/xxx.jpi /tmp/
systemctl restart jenkins

6. 端口被占用 / 防火墙

ss -lntp | grep 8080
firewall-cmd --list-all

二、推荐的标准 JVM 配置(示例)

编辑:

/etc/sysconfig/jenkins
# 或
/etc/default/jenkins

示例:

JENKINS_JAVA_OPTIONS="-Xms1024m -Xmx2048m"

重启:

systemctl restart jenkins

三、快速排查顺序(建议)

  1. systemctl status jenkins
  2. journalctl -u jenkins
  3. df -h
  4. free -m
  5. cat /var/log/jenkins/jenkins.log | tail -300

如果你愿意,可以贴出:

  • jenkins.log 最后 100 行
  • systemctl status jenkins 输出

我可以直接帮你判断是 OOM / 插件 / 磁盘 / Java 哪一类问题。

0