Lazy loaded image
BugRecord
🐞静态变量过大导致OOM
Words 838Read Time 3 min
2025-8-13
2025-8-13
type
status
date
slug
summary
tags
category
icon
password
原文

现象

两个服务,每个服务有三个节点,其中一个节点的磁盘满了,节点所在的服务器的磁盘告警,排查下来发现是目录data/applogs/xxl-job/jobhandler/2024-04-03 中的日志文件超大有15g左右,服务的日志中发现该目录已经无法写入文件。同时服务的进程还存活,但是在nacos的服务列表中发现服务已经下线在服务的日志文件中发现oom现象

排查过程

  1. 首先根据目录日志发现是xxl-job写的日志,能确定是某些任务失败了,xxl-job不停的写入日志文件,导致日志文件不断膨胀。
  1. 根据服务的xxl-job 发现注册的xxl-job任务的cron为每秒执行、运行策略是单机串行
到这一步,已经发现日志的文件激增的原因,xxl-job执行doCallback失败。
下一步排查服务下线xxl-job任务失败的原因:
  1. 分析服务日志发现nacos、xx-job的error异常信息
内存溢出错误在两个服务的日志均有发现,通过分析两个服务的dump发现,发现内存溢出的问题。
其中一个执行ma的流程的服务,发现其中一个类的大小为1705mb,而jvm设置(-Xmx)为2g,此时http请求、xxl-job都已经无法正常执行。
notion image
该类有个全局的HashMap,关键代码如下。
 
上一篇
线程池
下一篇
命令行执行shell脚本成功,但crontab执行失败

Comments
Loading...