命令和工具简介
- Jmap 查看内存信息
- Jstack 查看进程信息
- Jinfo 查看正在运行的java应用程序的扩展参数
- Jstat 查看堆内存各部分使用量
- jvisualvm 可视化查看工具
jps 查看系统运行的java程序
本例以tomcat程序为例
Jmap 命令详情
1.查看内存信息和实例个数
写入log.txt
Jmap -histo 12108 >./log.txt
2.查看堆信息
Jmap -heap 12108
可以使用-dump 下载堆内存,然后导入jvisualvm工具查看
jmap -dump:format=b,file=heap.hprof 12108
3.设置内存溢出自动导出dump文件
-XX:+HeapDumpOnOutOfMemoryEerror
-XX:+HeapDumpPath=./(路径)
Jstack命令详情
1.查看线程情况
jstack 12108
2.检测死锁情况
jstack 12108 |grep -A 10 deadlock
Jinfo 命令详情
1.使用 -flags 查看运行参数
Jinfo -flags 12108
Jstat 命令详情
1.查看垃圾回收统计
jstat -gc pid
jstat -gc 12108
- S0C 第一个幸存区容量
- S0U 第二个幸存区使用量
C是容量 U是使用量 - S1U S1U 第二个幸存区信息
- EC EU 伊甸区信息
- OC OU 老年代信息
- MC MU 元空间信息
- CCSC CCSU 压缩空间信息
- YGC:年轻代垃圾回收次数
- YGCT:年轻代垃圾回收消耗时间,单位s
- FGC:老年代垃圾回收次数
- FGCT:老年代垃圾回收消耗时间,单位s
- GCT:垃圾回收消耗总时间,单位s
jvisualvm 可视化工具使用
在命令行中运行
jvisualvm
设置内存参数
eg:
‐Xms1536M ‐Xmx1536M ‐Xmn1024M ‐Xss256K ‐XX:SurvivorRatio=6 ‐XX:MetaspaceSize=256M ‐XX:MaxMetaspaceSize=256M
- ‐Xms 初始堆大小
- -Xmx 最大堆大小
- ‐Xmn 年轻代大小
- ‐Xss 栈容易大小
- -XX:SurvivorRatio=n 年轻代中Eden区与survivor区的比值 , 则为 Eden:s0:s1 6:1:1
- -XX:MetaspaceSize 元空间大小
- -XX:MaxMetaspaceSize 最大元空间大小