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://xiahunao.cn/news/2776735.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

新年新展望

去年其实是收获颇丰的一年,除了工作中各项工作都得到了很大的推进,个人生活中也有很多变化,其中还拿到了功能安全工程师的证书,以及功能安全经理的证书。 展望一下2024年准备输出的内容,一个是对ISO26262的解读&#x…

力扣刷题之旅:进阶篇(五)—— 动态规划(DP)的妙用

力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。 --点击进入刷题地址 引言: 在算法的世界中,动态规划&#xff…

开发JSP应用程序

开发JSP应用程序 问题陈述 TecknoSoft Pvt Ltd.公司的首席技术官(CTO)John Barrett将创建一个应用程序的任务委托给了开发团队,该应用程序应在客户访问其账户详细信息前验证其客户ID和密码。客户ID应是数字形式。John希望如果所输入的客户ID或密码不正确,应向客户显示错误…

一文带你读懂JSON模块

json模块 JSON (JavaScript Object Notation):是一个轻量级的数据交换格式模块,受javascript对象文本语法启发,但不属于JavaScript的子集。 常用方法: dump(obj,fp):将对象以字符串的形式写入文件中。 load(fp)&am…

Web项目利用EasyExcel实现Excel的导出操作

早期Java使用的一些解析,到处excel的框架存在种种问题被遗弃,现在使用阿里巴巴所提供的EasyExcel已成为一种主流,本篇将详细介绍该功能在Web项目中如何实际应用。 详细操作文档:写Excel | Easy Excel 一、项目演示 在后台管理界…

【数据结构与算法-初学者指南】【附带力扣原题】队列

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《数据结构与算法:初学者入门指南》📘&am…

作业2.8

1、选择题 1.1、以下选项中,不能作为合法常量的是 ____B______ A)1.234e04 B)1.234e0.4 C)1.234e4 D)1.234e0 1.2、以下定义变量并初始化错误的是_____D________。 A) char c1 ‘H’ ; B) char c…

《MySQL 简易速速上手小册》第9章:高级 MySQL 特性和技巧(2024 最新版)

文章目录 9.1 使用存储过程和触发器9.1.1 基础知识9.1.2 重点案例:使用 Python 调用存储过程实现用户注册9.1.3 拓展案例 1:利用触发器自动记录数据更改历史9.1.4 拓展案例 2:使用 Python 和触发器实现数据完整性检查 9.2 管理和查询 JSON 数…

【黑马程序员】程序的内存模型

文章目录 内存分区模型分区意义代码区全局区特点代码示例 栈区特点代码示例 堆区特点代码示例 new 操作符 20240209 内存分区模型 分区意义 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程 代码区 处于程序未执行之前 程序编译后生成的…

文件绕过-Unsafe Fileuoload

文件上传基础 什么是文件上传 将客户端数据以文件形式封装通过网络协议发送到服务器端,在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存。 通常一个文件以HTTP协议进行上传时,将以POST请求发送至Web服务器,Web服务器…

PWM输入输出

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域。 PWM参数 PWM 中有三个重要参数&…

C++11新特性(一)

目录 C11简介 统一的列表初始化 变量类型推导 std::initializer_list 声明 auto decltype nullptr STL的一些变化 右值引用 右值引用和左值引用 右值引用适用场景 移动构造和移动语义 对类的影响 可变参数模板 递归函数方式展开参数包 STL容器中的empalce相…

内存管理 | 进程地址空间

文章目录 1.进程地址空间的理解2.将虚拟地址转换为物理地址3.进程地址空间的设计4.进程地址空间的好处 1.进程地址空间的理解 在 前文 分享的fork创建子进程的系统调用中,一个变量接收了两个不同的返回值!通过推测也知道,那个地址绝不是真是…

基于SpringBoot的记账系统项目

点击以下链接获取源码:https://download.csdn.net/download/qq_64505944/88822660?spm1001.2014.3001.5503 Java项目-8 开发工具:IDEA/Eclipse,MySQL,Tomcat 项目框架:SpringBoot,layui 功能:可以按照类型和时间查询&#xff0c…

融资项目——获取树形结构的数据

如下图所示,下列数据是一个树形结构数据,行业中包含若干子节点。表的设计如下图,设置了一个id为1的虚拟根节点。(本树形结构带虚拟根节点共三层) 实现逻辑: 延时展示方法,先展现第二层的信息&a…

年-月-日的输入方法

大家对于输入的函数一定有所认识&#xff0c;比如c中位于 #include <iostream> 中的 cin 函数&#xff0c;这个函数输入单个十分好用&#xff0c;但是对于年月日这种较为复杂的就行不通了&#xff0c;就只能输入最前面的一个 那怎么输入像这样的年月日呢 答案就是用 scan…

清理神器CleanMyMac X 空间透镜——可视化您的磁盘空间 空间透镜有什么用

不久前&#xff0c;CleanMyMac X 发布了一个新功能&#xff1a; 空间透镜 相信有非常多的小伙伴和小编一样&#xff0c; 对这个功能一脸问号 这啥玩意儿&#xff1f;&#xff1f;&#xff1f; 今天就让我们深入了解一下&#xff0c; CleanMyMac X 的空间透镜功能。 - 更好…

基于SSM的网络在线考试系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的网络在线考试系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring …

【CV论文精读】EarlyBird: Early-Fusion for Multi-View Tracking in the Bird’s Eye View

【CV论文精读】EarlyBird: Early-Fusion for Multi-View Tracking in the Bird’s Eye View 0.论文摘要 多视图聚合有望克服多目标检测和跟踪中的遮挡和漏检挑战。多视图检测和3D对象检测中的最新方法通过将所有视图投影到地平面并在鸟瞰视图&#xff08;BEV&#xff09;中执…

第五篇【传奇开心果系列】vant开发移动应用示例:深度解读高度可定制

传奇开心果博文系列 系列博文目录Vant 开发移动应用示例系列 博文目录前言一、Vant高度可定制的重要作用二、样式定制介绍和示例代码三、组件定制介绍和示例代码四、组件库定制介绍和示例代码五、主题定制介绍和示例代码六、语言环境定制介绍和示例代码七、资源加载定制介绍和示…