tomcat服务器一直自动关,项目在tomcat里运行一段时间总是自动崩掉的问题排查与解决...

最近的检验系统上线一段时间后,发现系统访问不了,tomcat总是会自动崩掉,一般遇到这种问题,程序员的第一反应都肯定是内存溢出。

确实是,但是java里内存分好几种,堆内存、栈内存、静态内存区等等,下面记录下我的排查问题步骤,以及解决方法。

一、查看服务器内存使用情况。

看看tomcat崩溃的时候,tomcat进程使用内存是否明显占用较多。

二、查看tomcat日志

catalina.201X-XX-XX.log

这个日志记录tomcat每次启动的情况。

localhost.201X-XX-XX.log

这个日志记录tomcat里各个webapp运行情况的日志。

e19878921f7e5a5f288eaf2ce5bb8c75.png

localhost_access_log.201X-XX-XX.txt

这个日志记录每次url访问的情况。

0355ae69d16b7d7a721b167ced908ff9.png

看日志可以明白,是报java.lang.StackOverflowError错误了,这个是栈内存溢出,然后还可以看到是在testServlet里的75行出错了。

这一行是啥呢?

out.println(sss

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在一个流量高峰期间,我们的网站开始出现了性能问题,特别是Tomcat的worker线程居高不下。这个问题对我们的系统稳定性和用户体验产生了严重影响,因此我们立即进行了排查解决。 首先,我们使用工具监控了Tomcat的worker线程数,发现在高峰期间线程数增过快,并且没有下降的趋势。接下来,我们对服务器进行了资源监控,发现CPU和内存的使用率都没有超过正常范围。这表明问题不是由于服务器资源不足导致的。 然后,我们查看了Tomcat的日志文件,发现一些异常错误信息与数据库连接相。我们怀疑是数据库连接池的问题,因此我们进一步检查了数据库的连接数和连接池的配置。经过对比分析,我们发现数据库连接池的最大连接数被设置得过小,导致在高流量时无法满足请求的需求。我们立即调整了连接池的配置,增加了最大连接数,以应对高峰期的负载。 随后,我们重启了Tomcat,并观察了一段时间。我们发现线程数在高峰期开始时仍然有所增,但是随着时间的推移开始逐渐下降,最终稳定在一个正常的范围内。这表明我们的排查解决措施是有效的。 为了进一步确保问题解决,我们还增加了日志监控和报警机制,以便更及时地发现和解决类似问题。 通过这次经历,我们学到了对于高并发流量情况下的线上问题,需要全面考虑不同组件的性能和配置,并对各个环节进行监控和调整。同时,日志分析和排查是至重要的工作,能够帮助我们准确定位问题并采取合适的解决措施,最终提升系统的稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值