过程:

周四当晚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版本坑上面,奉劝大家,不要用这些插件的大版本,要用小版本

自此问题得以解决。

jdk1.6升级jdk1.8踩出的神坑相关推荐

  1. 一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients过多问题解决

    一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients过多问题解决 参考文章: (1)一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients ...

  2. jdk1.7升级jdk1.8

    ** 记录jdk1.7升级jdk1.8 ** (需要注册,随便瞎填注册一下) 安装jdk1.8版本(下载链接:http://www.oracle.com/technetwork/java/javase ...

  3. linux 升级java_linux 升级jdk1.8

    1.首先根据实际情况准备好包 jdk-8u45-linux-x64.rpm 2.先不管是否已安装JDK1.6还是JDK1.7,先下载 jdk-8u45-linux-x64.rpm 然后上传到  /us ...

  4. Linux下JDK1.6升级1.8版本

    先不管是否已安装JDK1.6还是JDK1.7,先下载 jdk-8u45-linux-x64.rpm 然后上传到  /usr/local/src  去.当然其他目录也可以.这里是默认位置 给所有用户添加 ...

  5. Linux下JDK1.7升级1.8版本

    Linux下JDK1.7升级1.8版本 下载需要升级的jdk 这里我需要升级的是jdk1.8 然后上传到 /usr/local/src 去.当然其他目录也可以.这里是默认位置. 如果你的liunx连接 ...

  6. 常见面试题:为什么HashMap不是线程安全的呢?(JDK1.7和JDK1.8角度)(看完你就能和面试官笑谈人生了)

    title: 常见面试题:为什么HashMap不是线程安全的呢?(JDK1.7和JDK1.8角度)(看完你就能和面试官笑谈人生了) tags: 面试常见题 常见面试题:为什么HashMap不是线程安全 ...

  7. JDK1.5 与 JDK1.6的新特性

    JDK1.5 与 JDK1.6的新特性 收藏  一.JDK1.5的新特性 了解Java语言的特色及相关术语 泛型:泛型.通配符.有限制通配符.泛型方法 加强循环 自动装箱/拆箱 枚举 可变参数 静态引 ...

  8. JDK1.7和JDK1.8中HashMap是线程不安全的,并发容器ConcurrentHashMap模型

    一.HashMap是线程不安全的 前言 只要是对于集合有一定了解的一定都知道HashMap是线程不安全的,我们应该使用ConcurrentHashMap.但是为什么HashMap是线程不安全的呢,之前 ...

  9. HashMap源码分析-jdk1.6和jdk1.8的区别

    2019独角兽企业重金招聘Python工程师标准>>> 在java集合中,HashMap是用来存放一组键值对的数,也就是key-value形式的数据,而在jdk1.6和jdk1.8的 ...

最新文章

  1. 详解Oracle安装与配置.
  2. .bat脚本自动yes_推荐|PyToBI自动标注韵律
  3. Unity游戏暂停之Update与FixedUpdate区别
  4. java如何保证redis设置过期时间的原子性_2020年4月Redis面试题和答案整理
  5. Git知识点笔记-基本常识
  6. StringBuffer
  7. 参数名称 java_java – 具有重要名称的WSDL中的参数名称
  8. cubrid php,PHP - Manual: CUBRID (官方文档)
  9. log4j 打印线程号配置_Log4J日志整合及配置详解
  10. 团体程序设计天梯赛-练习集-L1-036. A乘以B
  11. RPG Maker的引擎分析(一)(二)
  12. java db4o,DB4O--java对象数据库
  13. 客户管理系统代码项目_低代码案例:快速交付包含门店销售终端的SCM供应链管理系统...
  14. python-opencv视频转图片+图片转视频(步骤详解)(亲测有效)
  15. ensp:静态路由配置和ospf动态路由配置
  16. 一条互联网广告多少钱?
  17. 北上广深——这无处安放的肉身
  18. 什么是Apple Rosetta 2
  19. 后羿采集器怎么导出数据_后羿采集器如何采集亚马逊评论
  20. 开源一文多发平台ArtiPub,让文章随处可阅

热门文章

  1. 戴尔计算机主机型号,戴尔电脑在哪看型号_戴尔电脑型号怎么看
  2. MMDetection 2.0安装笔记
  3. 用python计算符号函数一元定积分和不定积分
  4. osgEarth测高程方法
  5. 记录-gitlab自动部署-git拉取代码失败构建失败 + linux系统升级git(yum安装 + 源码安装)
  6. 工厂的生产管理系统,即时掌握车间生产动态
  7. 动态规划——贴纸拼词
  8. 小程序flex布局不生效
  9. 【安装】nodesj的addon模块配置使用报错处理
  10. java 中实现一行一行地读文件和一行一行地追加写文件