当前位置: 首页 > article >正文

jvm问题自查思路

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

一、文档

不仅知道了《深入理解java虚拟机第三版》,也知道了下面这几本书(从秦金伟老师那得知)

《深入java虚拟机》、《深入解析java虚拟机HpstPot》、《垃圾回收的算法和实现》,都是进阶的好书。

更深入jvm问题,查类似 R大 相关jvm开发者相关文档

[资料合集] RednaxelaFX写的文章/回答的导航帖(work in progress) - 知乎

二、实践验证

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

主要看这几篇文章

VisualVM: Home

https://www.cnblogs.com/avivaye/p/10515259.html

本地idea配置start.sh中的jvm参数:idea中设置JVM参数的两种方式_idea设置jvm参数-CSDN博客

2、配置gc日志参数,在GCViewer或者gceasy上观察gclog分析

GitHub - chewiebug/GCViewer: Fork of tagtraum industries' GCViewer. Tagtraum stopped development in 2008, I aim to improve support for Sun's / Oracle's java 1.6+ garbage collector logs (including G1 collector)

Universal JVM GC analyzer - Java Garbage collection log analysis made easy

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

Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation或者

MAT(Memory Analyzer Tool)工具使用超详细版-CSDN博客

4、jvm参数官网查询验证

在不确定的情况下可以在此次查参数验证

Java HotSpot VM Options

三、第三方网站傻瓜式操作

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

1、注册网站

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

2、测试功能

点击XXFox上的立即使用,我们可以看到参数查询、参数检查、参数变迁、参数优化、参数生成几个入口,

假设我们遇到知道机器配置的,但是不知道怎样设置合理的jvm参数,我们可以点击参数生成按钮,进去后,可以看到,我们需要输入自己的CPU核数,物理内存,操作系统,位数,jdk版本,选择好之后,最简化的方法,

我们点击右下角的生成参数,然后就可以看到生成了参数

3、验证参数

点击复制按钮,就可以将参数复制出来放到自己的启动脚本中,放置方法见上面

二、实践验证

1、在idea安装插件VisualVM可以在本地启动观察本地jvm情况

章节的博文,然后在安装好的visualvm上观察参数表现

-Xmx5440M -Xms5440M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled

当然你也可以自己的情况多生成一些参数,例如我把最后一排全部选择好了,然后可以看到生成的参数多了一些

有时我们会遇到已经有了参数,但是不知道是否合理,就可以使用参数查询的功能,点击下图中的随意一个参数查询,之后将参数输入进去,就会在下方得到一些建议,超级方便,更多功能大家也可以在这个网址下进行查看:Java虚拟机参数分析 - PerfMa (heapdump.cn) 。


http://www.kler.cn/news/233519.html

相关文章:

  • 【开源】SpringBoot框架开发超市账单管理系统 JAVA+Vue+SpringBoot+MySQL
  • ideaIU-2023.2.1安装教程
  • 【ROS机器人系统】实验 2 熟悉和使用 URDF 创建机器人模型
  • 分享76个表单按钮JS特效,总有一款适合您
  • 07 A B 从计数器到可控线性序列机
  • 13 OpenGL顶点后处理
  • DataX详解和架构介绍
  • JavaWeb- 转发(Forward)和重定向(Redirect)
  • [韩顺平]python笔记
  • Linux系统基础 03 IP地址虚拟网络、Linux软件包管理、ssh服务、apache服务和samba服务的简单搭建
  • 构建高效Docker环境:网络配置全指南
  • 《CSS 简易速速上手小册》第3章:CSS 响应式设计(2024 最新版)
  • 企业飞书应用机器人,使用python自动发送文字内容到群消息
  • Linux增删ip
  • docker-compose部署gitlab和jenkins
  • git的奇特知识点
  • Java实现陕西非物质文化遗产网站 JAVA+Vue+SpringBoot+MySQL
  • 【Spring MVC篇】参数的传递及json数据传参
  • 时序预测 | Matlab实现基于LSTM长短期记忆神经网络的电力负荷预测模型
  • Bert下载和使用(以bert-base-uncased为例)
  • 幻兽帕鲁服务器怎么更新?进入游戏显示:加入的比赛正在运行不兼容的版本,请尝试升级游戏版本(阿里云)
  • python智慧养老系统—养老信息服务平台vue
  • js手写Promise(下)
  • Java编程构建高效二手交易平台
  • Python 数组计算模块 NumPy快速入门 这篇就够了
  • Days 23 ElfBoard 板git版本管理工具
  • 多维时序 | MATLAB实现基于CNN-LSSVM卷积神经网络-最小二乘支持向量机多变量时间序列预测
  • (已解决)在vue路由中:Vue.use(VueRouter)和Vue.use(Router);有什么区别?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之StepperItem组件
  • 微服务OAuth 2.1扩展额外信息到JWT并解析(Spring Security 6)