弥勒网站开发,一键建站公司,水果商城网站模板,网站建设职位上篇文章说了ZGC是jdk11加入的#xff0c;他是未来jvm垃圾收集器的奠定者#xff0c;满足TB级别内存处理#xff0c;STW时间保持在10ms以下。 Jmap
我们可以先通过jmap -histo 进程ip 来查看#xff0c;但是这样看不太清晰#xff0c;我们可以用这行命令生成一个文件他是未来jvm垃圾收集器的奠定者满足TB级别内存处理STW时间保持在10ms以下。 Jmap
我们可以先通过jmap -histo 进程ip 来查看但是这样看不太清晰我们可以用这行命令生成一个文件jmap -histo ./print.txt。
我们还可以通过jmap -heap 进程ip 来看堆信息。 以上则是命令执行后获取到的信息。
分别代表最大堆空间是3G多年轻代74M年轻代最大1个G老年代171M元空间则是20多M。
下面则是堆正在用的信息eden的空间容量是capacity已经使用和空闲的都显示在内还有from svrvivor和to survivor容量和使用情况最后old generation代表老年代使用情况。 命令jmap -dump:formatb,fileprint.hprof 进程ip
则可以导出dump文件这里是可以通过设置jvm参数来导出的
-XX:HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath./ 存放dump文件路径 Jstack
命令jstack 进程ip 从打印的信息可以看到jstack很容易帮我们发现死锁甚至连死锁在哪一行都标记出来在165行
Thread-20和thread-19线程互相死锁。
还可以看到他们锁的线程ip是16进制一个锁着0x000000078591c980
一个锁着0x000000078591c990
Jinfo
命令Info -flags pid
Jinfo -sysprops pid Jstat
命令jstat -gc pid S0Csurvivor0区域C代表当前总大小。 单位KB
S1Csurvivor1区域C代表当前总大小。
S0Usurvivor0区域U代表Use正在使用的区域大小。
S1Usurvivor1区域U代表Use正在使用的区域大小。
ECeden区域C代表当前总大小。
EUeden区域U代表Use正在使用的eden区域大小。
OCold区域C代表当前总大小。
OUold区域U代表Use正在使用的old区域大小。
MC元空间区域C代表当前总大小。
MU元空间区域U代表元空间正在使用的区域大小。
CCSC和CCSU代表压缩指针。 YGC8代表从系统启动开始youngGC发生8次GC。
TGCT0.858代表youngGC消耗时间0.858s。
FGC2代表从系统启动开始FULLGC发生2次。
FGCT0.055代表fullGC消耗0.055s。
GCTFGC和YGC总的T之和。 Jstat -gc pid 1000 10 代表我要执行10次这个命令1s执行一次。
Jstat -gccapacity pid可以查看堆情况。
Jstat -gcnew pid可以查看新生代垃圾回收。
Jstat -gcnewcapacity pid查看新生代内存。
Jstat -gcold pid老年代垃圾回收。
Jstat -gcoldcapacity pid老年代内存情况。