性能问题排查工具介绍

欢迎关注专栏:性能测试和优化

排查工具介绍

JVM工具

jstack

jstack 命令可以生成 JVM 当前时刻的线程快照,包括线程的调用栈、状态等,常用于分析线程状态、排查死锁、线程阻塞、CPU 占用高等问题。

基本命令如下:

jstack 进程ID

输出如下:

在这里插入图片描述

jstat

jstat 命令允许以固定的监控频次输出 JVM 的资源使用情况,常用于分析垃圾回收情况、排查内存泄漏等问题。

基本命令如下:

jstat -gcutil -h10 <PID> 1000  # 每1秒输出一次GC统计,每10行显示表头

输出如下:

➜  ~ jstat -gcutil 23940 5000 100
  S0    S1      E       O      M     CCS   YGC     YGCT  FGC    FGCT   CGC   CGCT      GCT
  0.00 100.00  0.36  87.63  94.30  81.06   539   14.021   33   3.972   837  0.976   18.968
  0.00 100.00  0.60  69.51  94.30  81.06   540   14.029   33   3.972   839  0.978   18.979
  0.00   0.00  0.50  99.81  94.27  81.03   548   14.143   34   4.002   840  0.981   19.126
  0.00 100.00  0.59  70.47  94.27  81.03   549   14.177   34   4.002   844  0.985   19.164
  0.00 100.00  0.57  99.85  94.32  81.09   550   14.204   34   4.002   845  0.990   19.196
  0.00 100.00  0.65  77.69  94.32  81.09   559   14.469   36   4.198   847  0.993   19.659
  0.00 100.00  0.65  77.69  94.32  81.09   559   14.469   36   4.198   847  0.993   19.659
  0.00 100.00  0.70  35.54  94.32  81.09   567   14.763   37   4.378   853  1.001   20.142
  0.00 100.00  0.70  41.22  94.32  81.09   567   14.763   37   4.378   853  1.001   20.142
  0.00 100.00  1.89  96.76  94.32  81.09   574   14.943   38   4.487   859  1.007   20.438
  0.00 100.00  1.39  39.20  94.32  81.09   575   14.946   38   4.487   861  1.010   20.442
  • S0/S1:Survivor区使用率(0~100%)
  • E:Eden区使用率
  • O:老年代使用率
  • M:元空间使用率
  • YGC/YGCT:Young GC次数/耗时
  • FGC/FGCT:Full GC次数/耗时

jmap

jmap 命令可以生成堆转储快照,常用于分析JVM的垃圾收集器行为、排查堆内存溢出等问题。

生成堆转储文件的命令

jmap -dump:format=b,file=heap_dump.hprof <PID>

分析堆转储

  • 使用 MAT 打开 heap_dump.hprof
  • 查找 Histogram 中对象数量异常的类。

Jconsole

JConsole 是一个基于JMX的GUI工具,用于连接正在运行的JVM,提供强大的可视化界面,允许实时查看堆内存、线程、类加载、MBean等。

查看堆内存使用情况

在这里插入图片描述

查看线程情况

在这里插入图片描述

查看MBean

在这里插入图片描述

VisualVM

VisualVM 是一个集成多个JDK命令行工具的可视化工具,可以作为Java应用程序性能分析和运行监控的工具。开发人员可以利用它来监控、分析线程信息,浏览内存堆数据。

查看堆内存使用情况

企业微信截图_da02651a-cc27-4ce7-9cc0-4862cc1f6ae1

查看线程情况

企业微信截图_675af627-58bf-4644-a883-6394ef00213d

工具对比与选型建议

工具核心功能适用场景操作系统
jstack线程快照、死锁检测线程阻塞、死锁排查Windows/Linux
jstatGC统计、内存分区监控GC调优、内存泄漏初筛Windows/Linux
jmap堆转储生成OOM问题分析Windows/Linux
JConsole图形化综合监控实时运行时状态监控Windows/Linux
VisualVM图形化综合监控实时运行时状态监控Windows/Linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兮动人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值