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连接每种状态的连接的数量
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值