本文聊一下最近处理了一些 jvm 的问题上,将这个排查和学习过程分享一下,主要是从文档学习、工具学习和第三方技术验证来打开认知和实践,希望有用。

一、实践验证

1、通过VisualVM在本地启动观察本地jvm情况

第一步:选择 Run 下面的 Edit Configurations
图片
第二步:第一步打开后,出现如下界面,选择想配置的应用,然后在右侧的 VM options 设置 JVM 参数,配置完,重新运行项目就行了。
图片
第三步:idea 设置全局的 JVM 参数
图片

图片
打开后,可以看到一些默认的参数配置第四步:安装 visual 插件
图片

图片
第五步:启动运行 visual 插件
图片
看到这个就大体上成功了
图片

2、观察 gc 日志参数

在 GCViewer 或者 gceasy上 观察 gclog 分析
官网分别为:
https://github.com/chewiebug/GCViewer
https://gceasy.ycrash.cn/
使用方式大家可以自行百度,很简单易用

3、通过 mat 软件 dump 出 oom 文件排查

mat官网下载地址为:https://eclipse.dev/mat/downloads.phpmat
这个工具主要用来分析一些oom文件,使用方式也可以自行百度,也很简单易用。

4、jvm参数官网查询验证

在不确定的情况下可以在此次查参数验证https://www.oracle.com/java/technologies/javase/vmoptions-jsp...

二、第三方网站简化处理

当情况紧急但是自己又不知道怎样设置的时候,可以搜一个jvm调优大佬寒泉子做的一家公司的网站:HeapDump - 产品控制台,来进行简化工作

1、注册网站

在这个网站上选择自己的自己想使用的功能,可以使用的功能共有三个:java 虚拟机参数分析、java 现场 dump 分析、java 内存 dump 文件分析,下面我介绍下自己使用最多的 java 虚拟机参数分析
图片

2、测试功能

点击 XXFox 上的立即使用,我们可以看到参数查询、参数检查、参数变迁、参数优化、参数生成几个入口。
图片
假设我们遇到知道机器配置的,但是不知道怎样设置合理的 jvm 参数,我们可以点击参数生成按钮,进去后,可以看到,我们需要输入自己的 CPU 核数,物理内存,操作系统,位数,jdk 版本,选择好之后,最简化的方法,
图片
我们点击右下角的生成参数,然后就可以看到生成了参数
图片

3、参数生成

图片
就会出现
图片
当然你也可以自己的情况多生成一些参数,例如我把最后一排全部选择好了,然后可以看到生成的参数多了一些
图片
有时我们会遇到已经有了参数,但是不知道是否合理,就可以使用参数查询的功能,点击下图中的随意一个参数查询,之后将参数输入进去,就会在下方得到一些建议,超级方便,更多功能大家也可以在这个网址下进行查看:https://opts.console.heapdump.cn/
图片

图片

三、深入学习

《深入理解j ava 虚拟机第三版》、《深入 java 虚拟机》、《深入解析 java 虚拟机HpstPot 》、《垃圾回收的算法和实现》,都是进阶的好书。更深入jvm问题,查类似 R大 相关 jvm 开发者相关文档
https://zhuanlan.zhihu.com/p/25042028


纵情向前的强仔
3 声望0 粉丝