工具 | 作用 |
---|---|
jps | 找到进程 |
jmap | 查看内存 |
jstack | 查看线程 |
jstat | 性能分析 |
jps
是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。
参数
-q 只显示pid,不显示class名称,jar文件名和传递给main方法的参数
-m 输出传递给main方法的参数,在嵌入式jvm上可能是null
-l 输出应用程序main class的完整package名或者应用程序的jar文件完整路径名
-v 输出传递给JVM的参数
-V 隐藏输出传递给JVM的参数
jmap
参数 | 作用 |
---|---|
jmap pid | 查看进程的内存映像信息 |
jmap -heap pid | 显示Java堆详细信息 |
jmap -histo:live pid | 显示堆中对象的统计信息 |
jmap -clstats pid | 打印类加载器信息 |
jmap -finalizerinfo pid | 打印等待终结的对象信息 |
jmap -dump:format=b,file=heapdump.hprof pid | 导出dump文件 |
1.1 jmap -heap pid 查看堆的详情
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100 #GC后如果发现空闲堆内存占到整个预估堆内存的N%(百分比)
MaxHeapSize = 20971520 (20.0MB) # 堆最大空闲 jvm参数 -Xms20m
NewSize = 10485760 (10.0MB) # 年轻代空间 jvm参数 -Xmn10m
MaxNewSize = 10485760 (10.0MB) # 年轻代最大空间
OldSize = 10485760 (10.0MB) # 老年代空间 =(等于)堆内存大小 -(减去)年轻代大小
NewRatio = 2
SurvivorRatio = 8 # 年轻代内存又被分成三部分 Eden 空间 80% 而From Survivor 空间 和 To Survivor空间 分别占用10%
MetaspaceSize = 21807104 (20.796875MB) # 设置元空间的最大值 jvm参数 -XX:MaxMetaspaceSize
CompressedClassSpaceSize = 1073741824 (1024.0MB) # 类指针压缩空间大小, 默认为1G
MaxMetaspaceSize = 17592186044415 MB # 是分配给类元数据空间的最大值
G1HeapRegionSize = 0 (0.0MB) # G1区块的大小, 取值为1M至32M. 其取值是要根据最小Heap大小划分出2048个区块
jstat
参数 | 作用 |
---|---|
jstat -class 19570 | 类加载统计 |
jstat -compiler 19570 | 编译统计 |
jstat -gc 19570 | 垃圾回收统计 |
jstat -gccapacity 19570 | 堆内存统计 |
jstat -gcnew 19570 | 新生代垃圾回收统计 |
jstat -gcnewcapacity 19570 | 新生代内存统计 |
jstat -gcold 19570 | 老年代垃圾回收统计 |
jstat -gcoldcapacity 19570 | 年代内存统计 |
jstat -gcmetacapacity 7172 | 元数据空间统计 |
jstat -gcutil 19570 | 垃圾回收统计 |
jstat -printcompilation 19570 | JVM编译方法统计 |
-- https://www.cnblogs.com/sxdcgaq8080/p/11089841.html
参考:
https://www.jianshu.com/p/a4ad53179df3
https://segmentfault.com/a/1190000010648021
https://www.cnblogs.com/sxdcgaq8080/p/11089841.html
网友评论