码迷,mamicode.com
首页 > 其他好文 > 详细

JVM常用命令行工具学习总结

时间:2018-01-31 00:56:41      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:detail   min   tail   location   cat   情况   jps   oca   内存   

1. 搞清楚两个概念:

    内存溢出(Out Of Memory):是指程序在申请内存时,没有足够的内存空间供其使用,就会出现out of memory。

    内存泄露(Memory Leak):是指程序在申请内存后,无法释放已申请的内存空间。

2. 设置OOM时dump heap:

    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat/logs

3. 设置打印GC信息:

    -XX:+PrintGCDetails -Xloggc:/opt/tomcat/logs/gc.log

4. 查看java进程:

    jps -v // -v表示输出jvm启动时的参数

5. 线上dump heanp,用到了jmp命令:

    jmap -dump:format=b,file=7680.hprof 7680  //7680为java进程ID

6. 查看java进程实例对象数量以及大小,也是jmap:

    jmap -histo 7680

    输出示例如下:

    num    #instances    #bytes       class name

    1:       1732667      149468304   [C

    2:         209826      136432064   [B

    3:         364780        53321016   com.zws.beans.User

Total:     9076919      717049952

7. 获取java进程的线程状态:

    jstack -l 7680 > 7680.stack

8. jstat查看Java进程各个内存区域的使用占比情况:

    jstat -gcutil 7680

    示例输出:

    S0       S1      E       O        P        YGC    YGCT    FGC     FGCT     GCT

    75.02  0.00   3.34  41.42  99.92  388     15.379   0           0.000     15.379

    其中:

    S0 S1:Survivor0,Survivor1空间占百分比。  

    E:Eden空间使用所占百分比。

    O:老年代空间使用所占百分比。

    P:永久代空间使用所占百分比。

    YGC:自从进程启动以来发生的Minor GC次数(YGC表示Young GC)。

    YGCT:自从进程启动以来发生的Minor GC总耗时(秒)。

    FGC:自从进程启动以来发生的Full GC次数。

    FGCT:自从进程启动以来发生的Full GC总耗时(秒)。

    GCT:自从进程启动以来所有GC总耗时(秒)。

9. 查看最近一次GC的原因:

    jstat -gccause 4882

    示例输出:

    S0       S1     E        O         P        YGC    YGCT     FGC     FGCT     GCT       LGGC                     GCC

    75.02  0.00  3.34   41.42   99.92  388     15.379     0        0.000      15.379    Allocation Failure   No GC

    其中:

    LGGC:最近一次GC的原因。

    其他同第8条。

JVM常用命令行工具学习总结

标签:detail   min   tail   location   cat   情况   jps   oca   内存   

原文地址:http://blog.51cto.com/wenshengzhu/2067084

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!