JVM常用命令行工具学习总结
2018-01-30 23:05
288 查看
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 heap,用到了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条。
内存溢出(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 heap,用到了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条。
相关文章推荐
- RSA算法及一种"旁门左道"的攻击方式
- JVM虚拟机内存及垃圾收集
- 深入理解JVM原理之编译openjdk7
- JDK动态代理VS CgLib
- Ubuntu 安装 JDK 问题
- 龙井“上市”,阿里巴巴持续开源回馈社区
- CentOS7下安装jdk6
- CentOS 7快速安装jdk
- 解决调试JDK源码时,不能查看变量的值问题
- jdk与jre的区别 很形象,很清晰,通俗易懂
- jdk中String类设计成final的原由
- win7下安装 JDK 基本流程
- jdk环境变量配置
- win2003 jsp运行环境架设心得(jdk+tomcat)
- windows linux jdk安装配置方法
- Java编程之jdk1.4,jdk1.5和jdk1.6的区别分析(经典)
- 详解JDK 5 Annotation 注解之@Target的用法介绍
- jdk自带定时器使用方法详解
- 安装多个版本JDK后使用时的切换方法总结