maven中的导入虚拟机选项是什么 如何用jstat快速监控JAVA程序内存溢出?
如何用jstat快速监控JAVA程序内存溢出?
Java虚拟机统计监控工具jstat(JavaVirtualMachinestatisticsmonitoringtool)。
必须,我们得应明确下jstat的作用:对JVM参与统计监控,而且是实时自动的。这样视频监视java虚拟机的哪些数据呢?
我们先看看jstat是怎用的,linux下负责执行:
jstat-help
jstat-ltoptiongt[-t][-hltlinesgt]ltvmidgt[ltintervalgt[ltcountgt]]
再看看吧有哪些options:
jstat-options
通俗的解释之(其他参数大家也可以自己换算天天练习看下都作为输出哪些数据):
jstat-gc-t-h1027691200010
看这一大堆数字,烦不厌?恶不作呕?有看出去的心情吗?按照这些数据来急速结论内存泄漏问题能飞快起来吗?
上面是对jstat的一个的基本上介绍,大家应该这个可以看出来,想按照jstat去监控头内存健康状态是没问题啊的,但是也得知道的了解JVM的相关知识,要弄清年长代、绝版代、YGC、FGC,并依据这些数据来推测有无有内存泄漏的问题或是风险。
然而,它根本不快,线上出问题了经不起折腾你这么折腾吧的,所以我这里个人怀疑jstat这个可以只不过是一个监控amp预警工具,而不是问题排查工具去在用。(大家有相同的意见可以评论区交流讨论~)
这里,我建议的方法是:
如果你总觉得你的应用有内存泄漏的问题,那就一定不能别重新启动的或突然停止应用,要可以保留第一现场(这是目标,第一步没有了就等下四次内存泄漏吧~这个可以判断是从slb把这台机器取下来,避免影响用户)
用java光盘驱动的工具jmapdump现场文件:jmap-dump:formatb,ltpidgt
用MAT工具分析什么heapdump文件,现场文件搞到手了,剩的应该是能学会使用MAT分析文件了,反正也不用你分析,需要做的事情MAT都帮你做到了,按照MAT即可分析什么出吃内存的对象是什么了,那样就是可以定位到内存泄漏的问题了。
以上,是我对java内存泄漏问题定位的个人了解,热情大家积极讨论自学,共同成长~
一般的java项目后台都有什么技术,比如Spring MVC,shiro还有什么技术?
spring CloudredisNetty微服务等等还有一个很多
加我V:iyx2587758备注:问答
免费的彼此分享后端技术视频资料给你如果能对你有帮助
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。