系统运行一段时间就死掉的解决办法

系统运行一段时间就死掉的解决办法

作者:来源:日期:2019-04-06

背景:本人基于jfinal做了一个充值,但是系统运行一段时间就会死掉无响应

之前也给波总反馈过几个帖子,看到也有很多人在反馈这个问题,下面是我反馈的帖子

部署环境:阿里云windows server  ,tomcat容器(通过start.bat 黑窗口启动))

具体问题描述:系统假死后,查看了一下后台的线程,大部分都处于阻塞状态,阻塞的地方基本上就是system.out.print


解决过程:

  1. 在服务器部署程序的时候把devmode改为了true,因为devmode会打开actionreport, 而actionreport会调用system.out.print,改了之后确实稳定了一些,但是还有时候会假死

    image.png

  2. 把代码中所有的system.out.print都去掉了,并且调大了tomcat的并发数,又更加稳定了一些,但是还有假死的情况,这时候报的是log4j引起的假死

  3. 查看log4j源码,同时结合网上的办法,把原来的log4j   ImmediateFlush =true 配置改为了fasle,增加了BufferedIO=true  BufferSize =8192 

    image.png

这么一改平稳运行了好多天,但是又TM死在了某一天,十分费解

4.直到有一天,在网上闲逛,看到了他

image.png

我也试着在tomcat控制台敲了一下回车,奇迹出现了,所有阻塞的线程都运行完成了,我接着按照他的办法进行了设置,然后写了个多线程的小代码进行10000次并发测试,系统依然坚挺


解决办法:找到tomcat控制台,然后设置他的属性

image.png


反思:system.out.print一直运行不完的原因应该就是在等这个console资源,其他的system.out.print一直被阻塞,直到所有的tomcat线程都耗尽了,就会出现系统不响应

PS:解决问题一定要坚持不懈,一天解决不了就两天,不行就三天

还有不要怀疑jfinal的稳定性



北京SEO上海深圳网站推广-广州惠州中山珠海SEO优化公司-苏州杭州天津百度关键词网络排名优化 专业版搭建,内置工作流,信息签收、信息签发等常用政府网站功能,主要功能采用自定义模型,最大程度保证扩展性,为政府网站提供专业的政府网站解决方案
本网站资源均来自网络媒体,如有侵权请告知,我将尽快删除。