来源:重庆博为峰软件开发培训机构
时间:2021/7/26 15:24:30
重庆JAVA培训学校人气哪家可靠?重庆JAVA培训到博为峰来,中国IT职业教育良心品牌,专注Java培训,HTML5+WEB前端培训,Python+人工智能培训等,致力于帮助职场新人实现职业梦想,帮助IT企业解决用人难题。
重庆JAVA培训小编本文和大家分享关于spring4.0的问题,希望可以帮助到你。
2.1 前言
上面说了,遇到了jvm的crash的bug,必须要升级jdk的版本;找了套测试环境做了回归,发现没啥问题,非常高兴,准备在线上开搞。
2.2 现象
较开始的找了2组流量相对较小的机器,升级后重启服务没有发现异常现象,以为没啥问题了,就准备开始搞一组qps比较高的机器,替换jdk重启之后没啥问题,然后观察了会,发现load在缓慢上升,紧接着服务的接口开始大量的超时
2.3 排查过程
2.3.1 stack排查
首先,是抓了几个tomcat栈log下来,研究栈发现有大量的lock
不管是lock的,还是runnable的,都是卡在的spring的代码栈下,这里就有点奇怪了,spring的版本没有升级啊,先否决了,因为java8针对gc和jit有过相关的,首先来开始排查这2者,继续往下;
2.3.2 排查gc
首先排查了gc的问题,发现除了比之前更频繁一点之外,其它没啥区别,也没有触发full gc,基本可以排除。
2.3.3 jit排查
java8针对jit有一些默认的优化,所以发现gc没有问题的情况下,首先想到的就是jit的设置问题。
首先怀疑的是jit的cache的内存大小问题,调大后重启,发现只能延缓一点load升高的时间,没有根本解决问题
然后是调整jit的默认线程数,之前我们是设置了2个线程,使用默认的3个线程,有一定的效果,抗住了20分钟;然后继续调大4、5,发现反而比之前挂了还要快,重启之后基本上就挂了,也基本可以排除。
2.3.4 spring排查
比较容易出现问题的方面排查过了,没有发现问题,那就回归栈日志来排查,找不到明显问题,问下Google吧。
以上就是重庆JAVA培训小编今天分享的内容,更多培训课程,学习资讯,课程优惠,课程开班,学校地址等信息,可拨打页面上方的电话或加老师微信进行了解,我们期待您的咨询!
版权所有:搜学搜课(www.soxsok.com)