jvm调优有什么技巧?
场景一、CPU过高
CPU占用过高排查思路:(查进程->查线程列表->查线程堆栈)
<>step1:通过top命令查询占用CPU情况>
p.s.shift+p(大写的P-cpu排序)shift+m(大写的M-内存排序)
<>step2:通过进程pid,查询对应的线程列表>
CPU占用过高排查思路:(查进程->查线程列表->查线程堆栈)
<>step1:通过top命令查询占用CPU情况>
p.s.shift+p(大写的P-cpu排序)shift+m(大写的M-内存排序)
<>step2:通过进程pid,查询对应的线程列表>
<>step3:线程id转为十六进制>
从step2中可以看到占用cpu较高的线程id,打印出十六进制
<>step4:通过jstack查出线程栈信息>
cpu过高主要是线程方面的问题,我们知道jvm中每个线程都分配了单的栈,我们可以通过jstack查看线程栈情况。
p.s.这里的pid为进程id,也就是第一步top中的pid
对照着step3中占用cpu最高的线程十六进制值可以定位到线程的栈信息。
上图可以看到具体定位到了ja的代码,就可以具体分析一下这个ja代码为什么会创建大量的线程占用大量的cpu。
除了ja程序线程问题,cpu过高也可能是线程死锁造成的,我们通过jstack也可以查看线程死锁的情况。
<>step5:通过jstack查看情况死锁情况>
-l:除了线程列表外,还显示关于锁的附加信息
通过栈中的信息可以定位到代码中死锁的代码。
<>step6:通过jstat查看gc情况>
除了以上的各种情况,还有一种就是ja频繁的gc也会造成cpu占用过高
1000ms为刷新数据的间隔时间
如果有频繁的gc就可以分析堆数据中哪些对象创建的较多,就可以具体分析了。
排查思路:(查进程->jvm内存占用)
<>step1:通过top命令查询占用CPU情况>
p.s.shift+p(大写的P-cpu排序)shift+m(大写的M-内存排序)
<>step2:通过进程pid查看gc情况>
以下是该命令的输出结果说明:
以上各个区域的使用情况都会以百分的形式进行显示,即0.0%~100.0%之间。
例如,如果输出结果为“40.0020.0060.0070.00100.00”,则表示:
<>step3:通过jmap查看堆情况>
通过step2已经发现jvm中的数据过多,频繁的ygc并且大量的数据都在老年代没有回收,这样就会表现出内存占用过高。下一步就是分析那些对象占用了内存。
jmap-histo命令可以用于输出Ja堆内存中各个对象类型及其数量的计信息。具体说明如下: 可以看到org.example.User创建的较多。这相就可以具体分析一下代码中哪些地方创建了User为什么没被回收。 与jmap-histo类似的命令: jmap-dump命令可以用于生成Ja进程的内存快照文件(.hprof格式),以便进行后续的分析和调试。具体说明如下: 导出的快照文件可以通过jvisualvm或mat来查看: mat还较智能,直接把存在问题的给你列出来 <>step4:jmap-heapjvm内存实际占用情况> 除了以上内存占用情况,在ja项目中还存在一种情况。如我ja项目没有配置jvm参数都使用默认的配置,我64G内存。会发现用一段时间后ja进程占用了8G内存。这时你可以使用命令看看ja实际使用的内存情况,然后再调整jvm参数。 jmap-heap是一个用于获取Ja堆内存信息的命令行工具,它可以输出Ja虚拟机中堆内存的使用情况和配置信息。 压箱底的震惊来了,来波大的,一百个网站!这些都是我平时辛辛苦苦收集的,是真的牛逼,居然还有这种网站。1、实时地球网址:https://zoom.earth/实时图像每 10 分钟更新一次,提供风暴、天气预报、降水、火警等数据2、陕西博物馆... 我有一台mate 60 pro,第一时间升级了“纯血鸿蒙”。虽然功能并不完善,甚至有些简陋,但是我非常~非常不后悔升级鸿蒙next系统。因为.... 这就是一款“大型养成系游戏“,给我平淡的生活提供了源源不断的情绪价值。我每天特别... 武大建校130周年时,雷军向母校个人捐款13亿。在2023年8月14日晚上七点,雷总在国家会议中心举行的进行第四次年度演讲「成长」:全篇都在谈成长、梦想,这么多年了,始终做到了知行合一,我相信酒色财气可能真不是他所追求的,一直追求的就像他演... 成都有个监狱情况比较特殊,关押的基本全是重犯,而且还都是经济犯和政治犯,他们以前都是一方大佬,在自己的一亩三分地翻手为云覆手为雨,无非是不小心中箭落马或帮老大顶锅才进监狱,所以即使进来了,他们依然保持着体面和骄傲,依从性差,虽然不至于和监狱... 大家很多人都在问pdd百亿补贴购机靠谱吗?首先声明一下,我不是pdd的人,我只是一个普普通通混迹从事pc行业的数码玩家,我只是在评论区看到很多人都在无脑推百亿补贴,特地发一条怗子来说明一下这个东西。此怡不存在偏向引导,此站仅站在我个人角度上... 雷总不是说了吗,我可以不用,但你不能没有。市面上OPPO Find X8 Pro和vivo X200 Pro的卫星通信版分别加价300,而荣耀Magic7和Magic7 Pro有卫星通信版且不加价,荣耀更显诚意。我觉得有是更好的,虽然使用卫...相关文章
最让你震惊的网站有哪些?
只有我一个人后悔升级鸿蒙next吗?
为什么雷军身上没有酒色财气?
有哪些让你目瞪口呆的 Bug ?
拼多多百亿补贴买手机电脑等数码产品靠谱吗?
如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?
发表评论