记一次tomcat周期性出现服务停掉的原因

过程描述 : 开始时服务器一直老是自己就突然挂掉了,几次之后我查看日志,发现一个错误异常:This is very likely to create a memory leak. Stack trace of thread ,我就以为只是单纯的内存溢出,内存不够引起的,然后按照线面的方法加大内存,可是后面又出现了这个问题,只不过出现的频率降低了,以前是1天一次,现在是3天左右一次。


第一次分析:

问题1 :This is very likely to create a memory leak. Stack trace of thread

说明 : tomcat内存溢出 ,内存分配过小,jvm默认的内存分配时128m,这个肯定不满足项目的运行。

解决方案 在catalina或者 setclasspathd的文件顶部设置内存大小

JAVA_OPTS="-server -Xms6144m -Xmx6144m -XX:PermSize=1024m -XX:MaxPermSize=1024m"


第二次分析:

按以上方案解决之后,可是过一段时间又出现这个问题了,然后再进一步分许日志

发现有很多类似一下的错误

11-Sep-2019 10:41:46.687 WARNING [Catalina-utility-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [main] appears to have started a thread named [MasterListener-redismaster-[redis1.sge.wisesoft.com:26370]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

11-Sep-2019 10:41:46.691 WARNING [Catalina-utility-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [main] appears to have started a thread named [MasterListener-redismaster-[redis2.sge.wisesoft.com:26370]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

我观察了这一天的日志记录情况,发现出现memory leak的时间点刚好是我热部署系统的时候(用的jenkins部署的项目)分析到这里我觉得问题应该找到了,原因是: 热部署导致内存溢出从而使项目down掉

解决办法:

第一种 : 去掉热部署  (如果是开发的话,也可以不管,每次挂掉重启一下也可以)

第二种 :如下写一个监听,但这种对我不太适用,因为我不是一个项目,并且代码也不是一人维护,

第三种 :继续加大内存(如果你的服务器内存还足够的话)

我的解决方案是:Jenkins打包部署完之后,重启tomcat。

原因分析 :https://blog.csdn.net/lixld/article/details/80211871

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值