利用jfr文件分析java工程分享

引言:一般可以通过jstack来分析线程栈来获取一些线程信息,得到问题的解决入口。其使用简单,jstack pid即可查看线程信息,具体也有故障排查的使用案例。但是jstack相当于某一时刻的快照,如果我想全量分析某一时间段的内容,并且想要人性化的界面,那么就可以借助jcmd命令来生成JFR飞行记录仪,用java自带的jmc做分析和优化。

一、使用

1、找到java进程pid。(ps -ef | grep 工程)

2、使用前解锁(jcmd [pid]  VM.unlock_commercial_features )

3、开始jfr手动记录(有固定时长的记录方式,可自行百度,但是不太灵活故用手动方式)

    jcmd [pid] JFR.start name=endless settings=profile delay=3s duration=0  compress=true

 基本上后面参数不用动,不影响分析,delay是延迟多少秒执行,自己注意。还有返回结果中的recording编号要自己记住。

4、查看是否正在运行(jcmd [pid] JFR.check )

5、如果觉得要分析的时间段够了,就手动转存dump文件(后缀为jfr格式)

    jcmd [pid] JFR.dump recording=8 filename="./shcrmserver.jfr" compress=true

 注意:a、filename的相对路径是相对执行命令的目录而言的,可以从返回结果看出本次是在tomcat的bin目录下。b、recording编号要写正确。

6、结束记录(jcmd [pid] JFR.stop recording=8 )。注意:8是和开始时分配的编号来定的

7、拉下文件后,打开java安装目录,有个jmc.exe打开,将*.jfr拖入,等待加载

8、开始分析。参数有很多,我自己也没有完全摸透,只分享我用到的一些参数查看。可自行学习其他具体参数。

一般信息:

    分别记录了,堆使用量、cpu和GC信息。可以大致了解下总体运行概况

内存

    可以看到具体GC回收情况和总体GC每个区域回收时间和总体GC暂停概况,对于性能的调优是个很好的入口


代码

    代码,主要是可以查看每个包执行耗时比例,甚至统计调用最多的方法等信息。可以用来优化代码的使用。


线程

    线程是最值得参考的点之一,很多时候耗时操作都可以从这里得到答案。能查看争用最多的线程在哪个方法、哪个类执行,也可以看到等待时长最多线程是耗费在哪一步操作。包括热点线程号,可以对应日志进行查询


IO

    这部分通常也是最关注的点之一,对文件IO和套接字IO都有详细统计。文件写入也会记录工程日志输出的IO操作。

二、使用案例

三、总结

注意,使用前记得留出充足的空间写出jfr文件,否则会加载失败,功亏一篑。

最后,一切工具,都是为了更好更快解决问题所在,没有最优工具,只有最适合的工具。所以希望能继续积累排查、优化的实战经验,形成故障定位和解决的思路和策略,再结合工具快速解决问题。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342