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

匿名 (未验证) 提交于 2019-12-03 00:03:02

过程描述 : 开始时服务器一直老是自己就突然挂掉了,几次之后我查看日志,发现一个错误异常: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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!