jdk1.6升级jdk1.8踩出的神坑

过程:

周四当晚jdk从1.6升级到1.8,生产流程未出现异常。

第二天上午就炸了,被运维通知系统运行缓慢,业务人员已经炸锅。

然后,可怕的系统问题排查之路开始了。

排查过程:

1、从weblogic控制台看,发现有独占线程72个

此独占线程我分析和系统运行缓慢有关,但排查线程文件也未发现问题,等待线程和锁线程都未发现问题

2、用户反馈外网不行,内网可以(这就奇怪了)

通过排查确实外网巨慢,内网能接受,但是也是有点慢的

网络组排查未发现问题,nginx配置排查也无问题

3、排查数据库

未发现占用时间长的sql

这就走进了死胡同,似乎看不到希望了

然后一顿看日志百度,都无济于事

4、调整jvm参数

百度后调整jvm参数,这个方向应该也没问题,毕竟升级了jdk1.8

https://www.cnblogs.com/jtlgb/p/10276258.html

但是调整了jvm也于事无补,没有任何优化

然后发现服务器cpu占用过高,发现系统频繁GC,新生代频繁GC,一秒好几次,都未到老年代就full gc

后来调整了GC内存的大小以及垃圾回收的jvm优化

垃圾回收调优:https://blog.csdn.net/leeket/article/details/10995321

发现都解决不了问题

cpu过高抓取相关进程:https://blog.csdn.net/u010248330/article/details/80080605

5、回归代码问题

本地启动能重现,但是通过日志各种打印都无法定位到问题,最后发现

Spring MVC的注解功能,完成请求和注解POJO的映射(前端form表单提交,后端实体类接受,通过springbean反射实现)

巨慢。

配置如下:

<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
    <mvc:annotation-driven conversion-service="conversionService">
        <mvc:message-converters register-defaults="true">
            <!-- fastjosn spring support 解决返回json乱码问题 -->
            <bean id="jsonConverter"
                class="ins.framework.utils.support.MappingFastJsonHttpMessageConverter">
                <property name="supportedMediaTypes" value="application/json" />
                <property name="serializerFeature">
                    <list>
                        <value>WriteMapNullValue</value>
                        <value>QuoteFieldNames</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
        <mvc:argument-resolvers>
            <bean class="ins.framework.web.bind.method.annotation.FormModelMethodArgumentResolver" />
        </mvc:argument-resolvers>
    </mvc:annotation-driven>

通过这一点结合升级jdk版本及jar包依赖,发现spring从3.2.6升级到了4.0.0,最后百度发现4.0.0存在问题,

https://www.jianshu.com/p/69ccaab0add7

最后升级到4.0.6版本,我去,问题得以解决。。。。

不知道是不是运气不好,踩到了4.0.0的spring版本坑上面,奉劝大家,不要用这些插件的大版本,要用小版本

自此问题得以解决。

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值