【云原生技术】jenkins一直挂掉,查看日志报这个错怎么办org.apache.catalina.webresources.Cache.getResource

看起来你贴的这些日志是 Tomcat 的
org.apache.catalina.webresources.Cache.getResource
“无法缓存…因为 Web 应用 [jenkins] 已停止”的提示。它只是说明:Jenkins 这个 WebApp 已经被停止了(崩掉/被杀掉/被重启),此时还有请求进来,Tomcat 想把静态文件放进缓存却放不进去。它不是根因,真正导致 Jenkins 停掉的错误通常在这些日志之前。

下面给你一套快速排查与修复步骤(按优先级):

  1. 找根因日志
  • 查看停止前的 200 行:
    • tail -n 1000 $CATALINA_BASE/logs/catalina.out | grep -nE "SEVERE|ERROR|Exception|OutOfMemoryError|UnsupportedClassVersionError|NoSuchMethodError"
    • 同时看 $JENKINS_HOME/jenkins.log$CATALINA_BASE/logs/localhost.*.log
  • 如果是内存问题会看到 OutOfMemoryError 或内核 OOM:
    • journalctl -k -b | grep -i oom
  1. 资源检查
  • 磁盘空间/inode:df -h && df -i(空间满了 Jenkins 也会直接挂)
  • 文件句柄:ulimit -n 至少 8192,建议 65535
  • 内存占用:free -mtop 观察是否被 OOM Killer 干掉
  1. Java 与版本兼容
  • java -version 确认使用 Java 17(当前 Jenkins LTS 最低要求 17)
  • Jenkins WAR 与插件是否为兼容版本(过旧插件很常让 Jenkins 在启动后崩溃)
  1. 给 JVM 合理内存并开启崩溃证据
    在 Tomcat 的 CATALINA_OPTS 里加(按机器内存调整):
  • export CATALINA_OPTS="-Xms2g -Xmx4g -XX:+UseG1GC -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat/jenkins.hprof"
    然后重启 Tomcat。若再次 OOM,会留下 heap dump 便于定位泄漏/大对象。
  1. 插件/配置导致的崩溃
  • 先尝试“安全模式”启动(若 UI 还能进)
  • 启不来就禁用插件排查:把 $JENKINS_HOME/plugins/*.jpi 临时移走或改成 .jpi.disabled,先只保留最基础插件,启动成功后再逐个恢复
  • 看是否有最近升级/新增插件导致问题
  1. 磁盘清理
  • 清理 $JENKINS_HOME/jobs/**/builds 里的旧构建、workspace/ 的临时文件
  • 可用脚本或配置“保留构建个数”来自动清理
  1. 避免日志刷屏
  • 这些 Cache 日志只是因为服务已停止还在被访问。修好根因后自然消失
  • 若外部健康检查/探测在不停打接口,考虑在 Jenkins 下线时让负载均衡先摘除或用防火墙限制
  1. 不依赖 Tomcat(建议)
  • 官方推荐直接运行 java -jar jenkins.war 或使用系统包安装的 Jenkins(内置 Winstone)。在 Tomcat 下运行更容易出现兼容/资源问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿寻寻

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值