JVM排查案例与工具使用

1、JVM属性查看

2、CPU占用过高

  • top定位哪个进程对cpu的占用过高
  • ps命令进一步定位是哪个线程引起的cpu占用过高:ps H -eo pid,tid,%cpu | grep 进程id
  • jstack 进程id 可以根据线程id找到有问题的线程,进一步定位到问题代码的源码行号
    在这里插入图片描述

3、堆分析

某刻堆内情况分析

1、jps 工具查看当前系统中有哪些 java 进程
在这里插入图片描述

2、jmap 工具查看堆内存占用情况:

  • jmap -heap 进程id #查看当前时刻堆内情况
  • jmap -histo 进程id #查看历史生成的实例
  • jmap -histo:live 进程id #查看当前存活的实例,执行过程中可能会触发一次full gc

3、堆内存dump分析

  • jmap -dump:format=b,file=eureka.hprof 进程id # dump一个进程的堆内存文件

  • -Xms10M -Xmx10M -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\jvm.dump

  • 使用 jconsole、jvisualvm实时连接进程观察

  • -Dcom.sun.management.jmxremote.port 为远程机器的JMX端口

  • -Djava.rmi.server.hostname 为远程机器IP

java -Dcom.sun.management.jmxremote.port=8888 -Djava.rmi.server.hostname=192.168.65.60 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar microservice-eureka-server.jar

5、查看进程配置

  • Jinfo 进程id :查看正在运行的Java应用程序的扩展参数

6、Jstat垃圾回收统计

7、Arthas诊断工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值