使用JProfiler分析java oom dump文件

news2024/11/15 15:34:55

1、安装JProfiler(本文使用JProfiler11)
链接:https://pan.baidu.com/s/1VBHLIo8hIVGeeLjaBVjcIg 
提取码:q5wl

在JProfiler的堆遍历器(Heap Walker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对象。堆遍历器有五个视图:

类 Classes
显示所有类和它们的实例,可以右击具体的类"Used Selected Instance"实现进一步跟踪。

分配 Allocations
为所有记录对象显示分配树和分配热点。

索引 References
为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视图和输出视图的功能。

时间 Time
显示一个对已记录对象的解决时间的柱状图。

检查 Inspections
显示了一个数量的操作,将分析当前对象集在某种条件下的子集,实质是一个筛选的过程。

2、从服务器上将dump文件拿下来

 

3、使用JProfiler打开(打开比较久,需耐心等待,千万不要点skip,切记。。。)

 

4、查看Classes

5、查看Reference

5.1、选择一个class或者biggest object

 

 5.2、Use Slected Objects

 

 5.3、Incoming references

  • incoming references

显示这个对象被谁引用

  • outcoming references

显示这个对象引用的其他对象

6、查看

7、查看Graph

 

 

 8、查看代码

该方法主要用来导出数据报表,可以看出,当list数量太大时,就会导致OOM。

9、扩展
生成Dump文件,JVM启动时添加参数:

#出现 OOME 时生成堆 dump: 
-XX:+HeapDumpOnOutOfMemoryError
#生成堆文件地址:
-XX:HeapDumpPath=/home/xxx/logs/

9.1、linux tomcat

打开/tomcat_home/bin/catalina.sh文件 
 

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -server -Xms6144m -Xmx6144m -XX:NewSize=384m -XX:MaxNewSize=450m -XX:PermSize=128m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/zyf/logs"

 

注:其中不设-XX:HeapDumpPath时,dump出的文件在/tomcat_home/bin目录下

9.2、linux springboot

nohup java -Xms2048m -Xmx2048m -XX:NewSize=384m -XX:MaxNewSize=450m -XX:PermSize=128m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/darren/logs/ -jar test.jar --spring.profiles.active=prod &

 

9.3、windows tomcat

打开/tomcat_home/bin/catalina.bat文件

set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/400472.html

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

相关文章

一阶LADRC笔记代码实现

这两天看了一下LADRC的。学习深度不够,从理论和原理,没法评论什么。从个人感受上,它会从另一种角度去解释一些的控制的东西。从工程使用上,还是很有参考价值的,参数意义比较明确,整定参数比较容易。 参考&…

Javaweb MVC模式和三层架构

MVC 模式和三层架构是一些理论的知识,将来我们使用了它们进行代码开发会让我们代码维护性和扩展性更好。 7.1 MVC模式 MVC 是一种分层开发的模式,其中: M:Model,业务模型,处理业务 V:View&am…

沃隆食品冲刺上市:业绩整体呈下滑态势,红杉资本提前退出投资

近日,“每日坚果”的缔造者——青岛沃隆食品股份有限公司(下称“沃隆食品”)平移提交招股书,准备在上海证券交易所主板上市。本次冲刺上市,沃隆食品计划募集7.00亿元,中信证券为其保荐机构。 沃隆食品在招…

面试必看:谈谈你所了解的JVM调优,JVM性能调优总结

文章目录从面试角度来谈谈你了解的JVM调优GC调优的步骤1.确定目标:2.优化参数3.验收优化结果GC优化案例一、Major GC和Minor GC频繁优化Minor GC频繁问题:1.可以适当增大新生代的内存二、请求高峰期发生GC,导致服务可用性降低优化标记停顿时间…

第55章 头像图片的前端渲染显示

1 WebApi.Controllers.CustomerController.GetCustomerByToken /// <param name"token">1个指定的令牌字符串。</param> /// <summary> /// 【通过令牌获取用户-无需权限】 /// </summary> /// <remarks> /// 摘要&#xff1a; /// …

【Python】装饰器

一、装饰器的作用 装饰器能够为已经存在的对象添加额外的功能。 二、什么是装饰器 装饰器本质是一个python函数&#xff0c;它可以让其他函数在不需要做任何代码变动的前提下增加额外功能&#xff0c;装饰器的返回值也是一个函数对象。 三、装饰器的应用场景 插入日志、性能…

在云服务器安装tomcat和mysql

将 linux 系统安装包解压到指定目录进入 bin 目录执行./startup.sh 命令启动服务器执行./shutdown.sh 关闭服务器在浏览器中访问虚拟机中的 tomcat ip端口具体操作入下解压tomcat压缩包解压&#xff0c;输入tom按table键自动补全tar -zxvf 启动tomcat进入bin目录在linux启动to…

debian11安装Nvidia驱动及Docker运行

文章目录前言硬件及软件环境驱动下载驱动安装禁用xserver禁用nouveau安装依赖设置可执行并运行检查安装结果Docker配置Docker安装nvidia-container-runtime安装[^4]命令脚本内容执行脚本安装 nvidia-container-runtime检测Docker gpu 验证卸载指令总结异常处理参考链接前言 博…

Spring Boot+Vue前后端分离项目练习07之网盘项目注册登陆页面实现

1.Axios安装和接口封装 Axios是一个易用、简洁且高效的http库&#xff0c; 使用Promise管理异步&#xff0c;支持请求和响应拦截器&#xff0c;自动转换JSON数据等高级配置&#xff0c;是在vue项目中十分常见前端请求库&#xff0c;使用以下指令安装。 npm install axiosnpm …

工作中git常用操作

前言 在各种版本并行&#xff0c;需求不断迭代的过程中&#xff0c;我们经常会遇到各种打断开发的场景&#xff1a; 场景一&#xff1a;当前版本功能开发到一半&#xff0c;上级临时要求去修复某个线上bug&#xff1f;你能说不吗&#xff0c; 那当然绝对服从组织安排 &#x…

代码随想录算法训练营day54 | 动态规划之子序列 392.判断子序列 115.不同的子序列

day54392.判断子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组115.不同的子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺…

[2.2.3]进程管理——调度算法的评价指标

文章目录第二章 进程管理调度算法的评价指标&#xff08;一&#xff09;CPU利用率&#xff08;二&#xff09;系统吞吐量&#xff08;三&#xff09;周转时间&#xff08;四&#xff09;等待时间&#xff08;五&#xff09;响应时间小结第二章 进程管理 调度算法的评价指标 CP…

861. 翻转矩阵后的得分

861. 翻转矩阵后的得分https://leetcode.cn/problems/score-after-flipping-matrix/ 难度中等236 给你一个大小为 m x n 的二元矩阵 grid &#xff0c;矩阵中每个元素的值为 0 或 1 。 一次 移动 是指选择任一行或列&#xff0c;并转换该行或列中的每一个值&#xff1a;将所…

【Flutter】开发环境配置:FlutterSDK、Android SDK、iOS SDK

文章目录 一、前言二、Dart和Flutter的关系三、本地开发环境配置1.FlutterSDK2.配置镜像站3.安装安卓工具链4.安装XCode5.Dart 配置四、配置完成五、总结一、前言 在前面的课程中,我们学习了Dart语言的基本用法,并在DartPad线上环境对代码执行。 接下来,我们学习如何在本地…

如何为Keil安装version 5版本的ARM Compiler(Use default compliler version 5)

目录1. 为什么要安装version 5编译器2. 从原来MDK5.37以下版本(MDK536)的软件中提取AC5的编译器3. 解压完成后的文件如下图&#xff0c;打开ARM文件夹4. 将AMRCC文件夹拷贝到你的keil安装目录的AMR文件下5. 打开Keil&#xff0c;点击Project→Manage→Project Items&#xff0c…

爬虫(一)基础介绍

文章目录1. 爬虫简介1.1 robots协议1.2 反爬手段1.3 请求组成1.4 响应组成1.5 POST 请求与 GET 请求2. requests库2.1 GET请求2.2 POST请求2.3 代理1. 爬虫简介 网络爬虫也叫做网络机器人&#xff0c;可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的…

哪种类型蓝牙耳机佩戴最舒服?舒适度最好的蓝牙耳机推荐

如果您想在外出时听自己喜欢的音乐&#xff0c;您需要佩戴耳机&#xff0c;当前的耳机都足够小&#xff0c;可以将它们放在口袋里&#xff0c;即使它们在充电盒中也是如此&#xff0c;舒适度一直都是人们所追求的&#xff0c;舒适之余&#xff0c;佩戴同样稳固更加令人安心&…

ASEMI高压MOS管7N65参数,7N65图片,7N65大小

编辑-Z ASEMI高压MOS管7N65参数&#xff1a; 型号&#xff1a;7N65 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;650V 栅源电压&#xff08;VGS&#xff09;&#xff1a;30V 漏极电流&#xff08;ID&#xff09;&#xff1a;7A 功耗&#xff08;PD&#xff09;…

中文数字对照表--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

实例5&#xff1a;中文数字对照表 阿拉伯数字因其具有简单易写、方便使用的特点成为了最流行的数字书写方式&#xff0c;但在使用阿拉伯数字计数时&#xff0c;可以对某些数字不漏痕迹的修改成其它数字&#xff0c;例如&#xff0c;将数字“1”修改为数字“7”&#xff0c;将数…

Excel·VBA矩阵、求逆矩阵、解线性方程组

初等变换法求逆矩阵 vba内置函数MInverse可以计算矩阵的逆矩阵&#xff0c;《Office VBA 参考-WorksheetFunction.MInverse 方法 (Excel)》 初等变换法代码思路 对于一个3x3矩阵&#xff08;下图3x3红色部分&#xff09;右侧扩充单位矩阵&#xff08;下图3x3黑色部分&#xf…