JVM调优 dump文件怎么生成和分析

1、获取JVM的dump文件的两种方式  

  1. JVM启动时增加两个参数:

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

  2. 发现程序异常前通过执行指令,直接生成当前JVM的dmp文件,6214是指JVM的进程号

jmap -dump:format=b,file=/home/admin/logs/heap.hprof 6214

  获得heap.hprof以后,就可以分析你的java线程里面对象占用堆内存的情况了。

  推荐使用Eclipse插件Memory Analyzer Tool来打开heap.hprof文件。 

由于第一种方式是一种事后方式,需要等待当前JVM出现问题后才能生成dmp文件,实时性不高,第二种方式在执行时,JVM是暂停服务的,所以对线上的运行会产生影响。所以建议第一种方式。

 

2. 查看整个JVM内存状态 

  jmap -heap [pid]


 

3. 查看JVM堆中对象详细占用情况
  jmap -histo [pid]


4. 导出整个JVM 中内存信息,可以利用其它工具打开dump文件分析,例如jdk自带的visualvm工具

  jmap -dump:file=文件名.dump [pid]

  jmap -dump:format=b,file=文件名 [pid]

  format=b指定为二进制格式文件

 

利用MAT进行分析文件,下面是MAT安装教程

在Eclipse help -> Eclipse Marketplace下搜索Memory: 

 

安装后打开导出的文件:

1、打开MAT面板

 

 

2、打开导出文件

 

3、分析

暂时不写了参照android的分析   https://www.jianshu.com/p/c8e0f8748ac0

 



转载于:https://www.cnblogs.com/myseries/p/10827195.html

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

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

相关文章

关于 Oracle 分区索引的失效和重建

--创建测试表 SQL> create table t as select object_id,object_name from dba_objects;表已创建。SQL> select min(object_id),max(object_id) from t;MIN(OBJECT_ID) MAX(OBJECT_ID)-------------- --------------2 76083SQL> create table t_part(object…

【网络安全/CTF】unseping 江苏工匠杯

该题考察序列化反序列化及Linux命令执行相关知识。 题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($thi…

yum配置中driver-class-name: com.mysql.jdbc.Driver报错

错误&#xff1a; 原因&#xff1a; 解决方法&#xff1a;把方框中的<scope>runtime</scope>删掉 转载于:https://www.cnblogs.com/zly123/p/10834958.html

gitlab中的CI

https://blog.csdn.net/chengzi_comm/article/details/78778284 转载于:https://www.cnblogs.com/effortsing/p/10142720.html

增加表空间大小的四种方法

增加表空间大小的四种方法Meathod1&#xff1a;给表空间增加数据文件ALTER TABLESPACE app_data ADD DATAFILED:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF SIZE 50M;Meathod2&#xff1a;新增数据文件&#xff0c;并且允许数据文件自动增长ALTER TABLESPACE app_data …

Red Hat 8.0中设置光盘为软件源

为什么80%的码农都做不了架构师&#xff1f;>>> 以管理员身份登录 su 编辑设置软件源的repo文件 gedit /etc/yum.repos.d/redhat.repo 粘贴如下文本至空白处&#xff1a; [InstallMedia] nameRed Hat Enterprise Linux 8.0.0 mediaidNone metadata_expire-1 gpgche…

C++11并发编程:多线程std::thread

一&#xff1a;概述 C11引入了thread类&#xff0c;大大降低了多线程使用的复杂度&#xff0c;原先使用多线程只能用系统的API&#xff0c;无法解决跨平台问题&#xff0c;一套代码平台移植&#xff0c;对应多线程代码也必须要修改。现在在C11中只需使用语言层面的thread可以解…

图像特征提取——韦伯局部描述符(WLD)

一、原理及概述 韦伯局部描述符&#xff08;WLD&#xff09;是一种鲁棒性好、简单高效的局部特征描述符。WLD由两个部分组成&#xff1a;差分激励和梯度方向。 其具体算法是对于给定的一幅图像&#xff0c;通过对每个像素进行这两个分量的计算来提取其差分激励图像和梯度方向图…

Linux下Nagios的安装与配置

Linux下Nagios的安装与配置 一、Nagios简介 Nagios是一款开源的电脑系统和网络监视工具&#xff0c;能有效监控Windows、Linux和Unix的主机状态&#xff0c;交换机路由器等网络设置&#xff0c;打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员&am…

POJ_3262 Protecting the Flowers 【贪心】

一、题面 POJ3262 二、分析 这题要往贪心上面想应该还是很容易的&#xff0c;但问题是要证明为什么比值关系就能满足。 可以选择几个去分析&#xff0c;入1-6 与 2-15 和 1-6 与2-5 和 1-6 与 2- 12。 三、AC代码 1 #include <cstdio>2 #include <iostream>3 #in…

WebLogic安装Linux centos7

一、安装前准备工作&#xff1a; 1、创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组&#xff0c;并将该用户分到改组中。并会在/home路径下创建一个和用户名相同的路径&#xff0c;比如我们创建的weblogic。 注&#xff1a;当然&#xff0…

jquery如何阻止子元素继承父元素的事件(又称事件冒泡)

非常简单&#xff0c;子元素上添加如下代码即可 1 $(a).click(function(e){ 2 e.stopPropagation(); 3 }); 老版本为event,现在用e就行 转载于:https://www.cnblogs.com/chengbo2130/p/10152747.html

java spring cloud 版 b2b2c 社交电商-服务消费者(Feign)

社交电商平台源码请加企鹅求求&#xff1a;一零三八七七四六二六。Feign是一个声明式的伪Http客户端&#xff0c;它使得写Http客户端变得更简单。使用Feign&#xff0c;只需要创建一个接口并注解。它具有可插拔的注解特性&#xff0c;可使用Feign 注解和JAX-RS注解。Feign支持可…

Mybaits自定义SQL

最近有个同事要包装一个可以执行sql语句的功能用的是mybatis 最开始他想到的方案是拿到数据库连接再执行sql语句。 后来出了某些错误来问我&#xff0c;为了寻求比较快的解决方法于是我就试试了下下面的方法。 首先在Mapper添加 <select id"select" resultMap&qu…

Beta 冲刺 (7/7)

团队信息 队名&#xff1a;爸爸饿了组长博客&#xff1a;here作业博客&#xff1a;here组员情况 组员1&#xff08;组长&#xff09;&#xff1a;王彬 过去两天完成了哪些任务 协助完成安卓端的整合完成安卓端的美化协助制作宣传视频 接下来的计划 & 还剩下哪些任务 I am d…

类的转换函数调用的优先级与是否用const修饰的关系

P415 C Primer Plus (第六版&#xff09;(待解决~~知道原理的同学请留言&#xff0c;多谢~~&#xff09; #include <iostream>using namespace std; class Cp{private:   int a;   double b;public:   Cp()   {     a 1;     b 2.2;   } operator in…

Java Web 学习与总结(一)Servlet基础

配置环境&#xff1a;https://www.cnblogs.com/qq965921539/p/9821374.html 简介&#xff1a; Servlet是Sun公司提供的一种实现动态网页的解决方案&#xff0c;在制定J2EE时引入它作为实现了基于Java语言的动态技术&#xff0c;目前流行的Web框架基本都基于Servlet技术&#xf…

堪称经典

程序员作为高智商、高收入、高压力群体&#xff0c;经常会有各种自嘲&#xff0c;而且还天生携带段子手基因。不信看看下面这些段子&#xff0c;一般人哪能懂&#xff01; 1、杀一个程序员不需要用枪&#xff0c;改三次需求就可以了 2、程序员退休后决定练习书法&#xff0c;于…

【洛谷 P1659】 [国家集训队]拉拉队排练(manacher)

题目链接 马拉车简单膜你 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN 11000010; const int MOD 19930726; char b[MAXN], a[MAXN << 1]; int hw[MAXN << 1], ans 1, n, c[MAXN]; #defi…

Judy Beta 第三天

概述 前端部分对于打包的流程以及相关 package.json 的配置都已经比较熟悉了&#xff0c;目前主要负责对新实现的 feature 做测试&#xff0c;以及参考 DAP 为后端明确数据交换的格式及参数内容等。 后端部分按照更新的 wiki 实现了变量展开&#xff0c;并且根据 DAP 的协议流程…