zoukankan      html  css  js  c++  java
  • jvm 之 国际酒店 6月25日上线内存溢出原因

    625OMSIhotel上线成功后执行了一个批处理,SOA报警提示某一台IHOTEL机器调用OMS失败率大于阀值,登录这个机器后发现这台机器CPU使用率处于80%以上,调用OMS有的时候超过5秒。tomcat日志显示一直在执行fullGC.

    tomcat报错:

     

    后联系OPS重启这台机器上的tomcat,系统运行正常。

     

     

    错误原因分析:

    使用MAT分析java_pid20367.hprof文件

     

    pool-8-thread-2这个线程产生了占用了1.6GB的内存。造成下面的错误:

     

     

     

     

    这个线程在执行的操作是分页查询OMS,上面的日志显示在SOA调用OMS的时候,由于outOfMemerysoaclient抛出error异常,捕获后没有往外面抛出,因此此线程一直在执行,占用大量的内存【如果此异常抛出到最外层,此线程会终止,线程下面的堆内存也会被GC收回】。因此JVM大部分时间一直在执行FullGC操作,其他线程运行缓慢。最终只能重启tomcat

     

     

     
     
     
  • 相关阅读:
    适配器模式
    事务
    JUnit4
    命令模式
    组合模式
    MySQL语法
    MyEclipse工具
    数据源和连接池
    Annotation
    Java反射机制
  • 原文地址:https://www.cnblogs.com/200911/p/4768784.html
Copyright © 2011-2022 走看看