zoukankan      html  css  js  c++  java
  • JVM问题定位分析(一)

    最近的测试过程中,我负责的测试模块被其他同事投诉,说我负责的模块经常挂掉。于是我就开始寻找问题的旅程。

    1、首先  我开始查找我负责的模块的日志并没有明显异常。那么我的服务为什么会被kill 掉呢??

        执行命令:

    dmesg -T |grep -i kill

     

    2、分析原因 是内存溢出导致的,那么到底是不是我的服务引起的还没有准确地定位到。接下来我需要看一下gc日志。

    名词解释:

    GC:

    表明进行了一次垃圾回收,前面没有Full修饰,表明这是一次Minor GC ,注意它不表示只GC新生代,并且现有的不管是新生代还是老年代都会STW(Stop-The-World)。

    Allocation Failure:

    YGC 时间过长

    Times:real>>user+sys  因此导致失败

    ParNew:

        表明本次GC发生在年轻代并且使用的是ParNew垃圾收集器。ParNew是一个Serial收集器的多线程版本,会使用多个CPU和线程完成垃圾收集工作(默认使用的线程数和CPU数相同,可以使用-XX:ParallelGCThreads参数限制)。该收集器采用复制算法回收内存,期间会停止其他工作线程,即Stop The World。

    668904K->36553K(670720K):单位是KB

    三个参数分别为:GC前该内存区域(这里是年轻代)使用容量,GC后该内存区域使用容量,该内存区域总容量。

    1.8041769 -0.8094076 secs :  该内存区域GC耗时,单位是秒

    803975K->171624K(1526784K):三个参数分别为:堆区垃圾回收前的大小,堆区垃圾回收后的大小,堆区总大小。

    0.8094076 secs:该内存区域GC耗时,单位是秒。

    [Times: user=0.06 sys=0.00, real=0.81 secs]:分别表示用户态耗时,内核态耗时和总耗时

  • 相关阅读:
    quartz 时间表达式----- Cron表达式详解
    js正则表达式
    tomcat的server.xml文件的详解
    spring web.xml中 过滤器(Filter)的工作原理和代码演示
    tomcat端口占用解决方案
    Spring集成Hibernate映射文件的4种方式
    Hibernate 一二级缓存的使用场景
    Hibernate各种主键生成策略
    Pip的安装,环境变量的配置以及使用方法
    解决pycharm无法调用pip安装的包
  • 原文地址:https://www.cnblogs.com/emars/p/12308457.html
Copyright © 2011-2022 走看看