JVM常见问题查询命令
Posted yjl_2130
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM常见问题查询命令相关的知识,希望对你有一定的参考价值。
查看java项目进程id
jps
jstat查看内存使用和垃圾回 收情况,查看内存占用情况以及垃圾回收情况是否异常
jstat -gc pid
jstat -gc PID 1000 10(每隔1秒钟更新出来最新的一行jstat统计信息,一共执行10次jstat统计)
说明:
S0C:这是From Survivor区的大小
S1C:这是To Survivor区的大小
S0U:这是From Survivor区当前使用的内存大小
S1U:这是To Survivor区当前使用的内存大小
EC:这是Eden区的大小
EU:这是Eden区当前使用的内存大小
OC:这是老年代的大小
OU:这是老年代当前使用的内存大小
MC:这是方法区(永久代、元数据区)的大小
MU:这是方法区(永久代、元数据区)的当前使用的内存大小
YGC:这是系统运行迄今为止的Young GC次数
YGCT:这是Young GC的耗时
FGC:这是系统运行迄今为止的Full GC次数
FGCT:这是Full GC的耗时
GCT:这是所有GC的总耗时
常见jstat其他查询命令
jstat -gccapacity PID:堆内存分析
jstat -gcnew PID:年轻代GC分析,这里的TT和MTT可以看到对象在年轻代存活的年龄和存活的最大年龄
jstat -gcnewcapacity PID:年轻代内存分析
jstat -gcold PID:老年代GC分析
jstat -gcoldcapacity PID:老年代内存分析
jstat -gcmetacapacity PID:元数据区内存分析
查看内存分配
jmap -heap pid:
查看内存分配情况,查看是否内存空间被占满,导致无法分配足够的内存空间
查看死锁
jstack -F pid:
查找线程死锁,导出线程堆栈,然后查看线程状态
查看gclog
gclog:
查看垃圾回收原因,需要在服务启动时指定记录垃圾回收日志
dump日志
jmap -dump:format=b,file=文件名.dump pid
jmap -dump:format=b,file=文件名.dump 12340
导出内存镜像文件,使用工具进行分析
查看线程快照
jstack -l 12340 >a.text
查看内存对象
jmap -histo pid:
查看内存对象
查看所有有效TCP连接:
netstat -an |grep tcp 查看所有tcp连接包括LISTEN状态
netstat -an |grep ESTABLISHED 查看所有正在连接中的tcp连接
netstat -an | awk '/^tcp/ ++S[$NF] END for(a in S) print a, S[a]' 统计tcp连接每种状态的连接的数量
以上是关于JVM常见问题查询命令的主要内容,如果未能解决你的问题,请参考以下文章