基于Linux系统的Tomcat内存泄露分析、CPU内存过高排查

Java内存,CPU占用过高排查
  1.ps -ef | grep tomcat名字 -->拿到Tomcat进程的pid
  2.jstack -l 进程pid >> jstack.log -->打印并保存该进程中堆栈的使用信息日志
  2.top -Hp pid -->展示进程中所有线程的cpu占用情况
  3.printf %x 线程pid -->该线程对应的16进制
  4.vim jstack.log -->编辑查找3中打印的16进制值
  5.分析并定位到问题代码
Java内存泄漏排查
  1.ps -ef | grep 进程 --->拿到进程的pid
  2.top -p [pid] -->查看进程资源占用情况 只要看内存
  3.jstat -gcutil [pid] 60000 -->总结垃圾回收统计 每分钟输出一次
     jstat -gc [pid] 60000 -->垃圾回收统计 每分钟输出一次
     jstat -gcnew pid --> 新生代垃圾回收统计
     jstat -gccapacity pid -->堆内存统计
     jstat -gcmetacapacity pid -->元数据空间统计
     jstat -gcnewcapacity pid -->新生代内存空间统计
  4.观察结果 是否存在大量full gc, 如果发现是因为大量FULL GC造成程序执行缓慢的话,就要接着查看到底是程序的哪些部分占用的
  5.jmap -histo:live [pid] | head -n 1000 -->查看进程下各种类型的对象创建了多少个,以及每种对象占用内存的情况

释、2.中参数详解
  total 进程总数
  running 正在运行的进程数
  sleeping 睡眠的进程数
  stopped 停止的进程数
  zombie 僵尸进程数
  Cpu(s):
    us 用户空间占用CPU百分比
    sy 内核空间占用CPU百分比
    ni 用户进程空间内改变过优先级的进程占用CPU百分比
    id 空闲CPU百分比
    wa 等待输入输出的CPU时间百分比
    hi:硬件CPU中断占用百分比
    si:软中断占用百分比
    st:虚拟机占用百分比
  3.中jstat -gcutil [pid] 60000参数详解
    S0:幸存1区当前使用比例
    S1:幸存2区当前使用比例
    E:伊甸园区使用比例
    O:老年代使用比例
    M:元数据区使用比例
    CCS:压缩使用比例
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间
  jstat -gc [pid] 60000参数详解
    S0C:第一个幸存区的大小
    S1C:第二个幸存区的大小
    S0U:第一个幸存区的使用大小
    S1U:第二个幸存区的使用大小
    EC:伊甸园区的大小
    EU:伊甸园区的使用大小
    OC:老年代大小
    OU:老年代使用大小
    MC:方法区大小
    MU:方法区使用大小
    CCSC:压缩类空间大小
    CCSU:压缩类空间使用大小
    YGC:年轻代垃圾回收次数
    YGCT:年轻代垃圾回收消耗时间
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间
  jstat -gcnew pid参数详解
    S0C:第一个幸存区大小

    S1C:第二个幸存区的大小

    S0U:第一个幸存区的使用大小

    S1U:第二个幸存区的使用大小

    TT:对象在新生代存活的次数

    MTT:对象在新生代存活的最大次数

    DSS:期望的幸存区大小

    EC:伊甸园区的大小

    EU:伊甸园区的使用大小

    YGC:年轻代垃圾回收次数

    YGCT:年轻代垃圾回收消耗时间


  jstat -gcmetacapacity pid参数详解
MCMN:最小元数据容量

    MCMX:最大元数据容量

    MC:当前元数据空间大小

    CCSMN:最小压缩类空间大小

    CCSMX:最大压缩类空间大小

    CCSC:当前压缩类空间大小

    YGC:年轻代垃圾回收次数

    FGC:老年代垃圾回收次数

    FGCT:老年代垃圾回收消耗时间

    GCT:垃圾回收消耗总时间


  jstat -gcnewcapacity pid参数详解
    NGCMN:新生代最小容量

    NGCMX:新生代最大容量

    NGC:当前新生代容量

    S0CMX:最大幸存1区大小

    S0C:当前幸存1区大小

    S1CMX:最大幸存2区大小

    S1C:当前幸存2区大小

    ECMX:最大伊甸园区大小

    EC:当前伊甸园区大小

    YGC:年轻代垃圾回收次数

    FGC:老年代回收次数


  jstat -gcoldcapacity pid
    OGCMN:老年代最小容量
    OGCMX:老年代最大容量
    OGC:当前老年代大小
    OC:老年代大小
    YGC:年轻代垃圾回收次数
    FGC:老年代垃圾回收次数
    FGCT:老年代垃圾回收消耗时间
    GCT:垃圾回收消耗总时间

转载于:https://www.cnblogs.com/lazy-fc/p/11297953.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值