jcmd、jstack、jmap抓包

本文介绍了如何在Linux环境下配置并使用JFR(JVM Flight Recorder)来生成jfr文件,以便进行性能分析。通过添加特定的JVM参数,并利用jcmd命令启动JFR记录会话,最终生成可用于本地分析的jfr文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jcmd是从JDK 7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令

在保证了JDK版本的前提下,欲使Linux上下载下来的jfr文件能在本地运行,还需要在搭有Linux环境的服务器JVM中添加如下参数:

-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder

resin

<jvm-arg>-XX:+UnlockCommercialFeatures</jvm-arg>
<jvm-arg>-XX:+FlightRecorder</jvm-arg>

然后在Linux环境上运行如下命令生成jfr文件:

su www -lc "/usr/java/jdk1.7.0_40/bin/jcmd ${ppid} JFR.start name=test duration=60s settings=default.jfc filename=output_`date +%m%d%H%M`.jfr"

待文件生成成功后,下载相应的jfr双击即可查看相关信息。(代码->热点方法->堆栈跟踪)

使用到的其它命令如下:

  jcmd                           ----查看JVM进程的PID
  jcmd -l                        
  jcmd pid Thread.print   ----打印堆栈信息,功能类似于jstack -m pid

其他:

jstack线程:(632是进程ID)

su www -lc "/usr/java/jdk1.7.0_40/bin/jstack 632" > /home/www/jstack_out.txt

jmap内存:

su www -lc "jmap -F -dump:format=b,file=jmap.dat 6214"
查看
su www -lc "jhat -j -Xmx512m -port 9998 /home/www/jmap.dat"

转载于:https://blog.51cto.com/chaichuan/2094094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值