文档章节

JVM学习手册(X):查看堆内存使用情况以及排错

勤奋的蚂蚁
 勤奋的蚂蚁
发布于 07/21 20:04
字数 554
阅读 6
收藏 4

平时出现内存溢出以及死锁,一般处理方式都是查看日志,找到抛出异常的代码行,然后本地分析代码,但是这样对于线上排查十分糟糕,这段时间在研究JVM发现了几个比较好的工具和指令.

1.针对频繁GC和内存溢出:

(1).首先找到有哪些线程在执行,使用指令jps.

(2).查看堆内存使用情况,使用指令jstat -gc 进程ID 刷新毫秒 刷新次数(PS: jstat -gc 1111 250 5,即对于线程1111在堆中使用情况,250毫秒刷新一次,总共刷新5次)

(3).可以将堆内存使用情况生成堆转储文件,使用指令jmap -dump:format=b,file=文件名 进程ID

(4).使用jhat或者Memory Analyzer分析堆转储文件,这里使用Memory Analyzer来分析.

(5).首先需要安装Memory Analyzer,地址为http://archive.eclipse.org/mat/1.2/update-site/ 或者 下载插件版都可以

(6).将堆转储文件加载进Eclipse.

(7).过段时间再次生成一个堆转储文件.

(8).将两个文件都用Memory Analyzer加载进去,

(9).选择柱状图标志(Create a histogram...),选择最后一个标志(compare to another Heap Dump),最后选择多个文件夹标志(Group result by)中的Group by package,对比两次生成文件产生对象是否有差异,然后定位具体代码.

2.针对死锁

(1).首先找到有哪些线程在执行,使用指令jps.

(2).查看进程运行状态,使用指令jstack -l 进程ID(-l 显示线程阻塞/死锁的情况)

(3).根据打印出的信息如果有异常情况很容易就找到出问题的代码行数

© 著作权归作者所有

共有 人打赏支持
勤奋的蚂蚁
粉丝 7
博文 51
码字总数 13737
作品 0
海淀
私信 提问
jvm优化必知系列——监控工具

这是jvm优化系列第二篇: jvm优化——垃圾回收 通过上一篇的jvm垃圾回收知识,我们了解了jvm对内存分配以及垃圾回收是怎么来处理的。理论是指导实践的工具,有了理论指导,定位问题的时候,知...

wier
2017/10/18
0
14
Java 堆内存溢出梗概分析

任何使用过基于 Java 的企业级后端应用的软件开发者都会遇到过这种低劣、奇怪的报错,这些报错来自于用户或是测试工程师: java.lang.OutOfMemoryError:Java heap space。 为了弄清楚问题,...

oschina
03/19
2.3K
0
线上应用故障排查之二:高内存占用

搞Java开发的,经常会碰到下面两种异常: 1、java.lang.OutOfMemoryError: PermGen space 2、java.lang.OutOfMemoryError: Java heap space 要详细解释这两种异常,需要简单重提下Java内存模...

MZHS
2015/11/13
0
0
Linux ---> 监控JVM工具

JDK内置工具使用 jps(Java Virtual Machine Process Status Tool) 查看所有的jvm进程,包括进程ID,进程启动的路径等等。 jstack(Java Stack Trace) ① 观察jvm中当前所有线程的运行情况和线...

shking
2013/10/10
0
0
IBM和SAP开源其JVM诊断工具

IBM最近发布了其Java诊断工具套件,该套件包含如下工具:面向Java的产品转储分析器(Dump Analyzer)、处理垃圾收集(GC,即Garbage Collection)的Extensible Verbose Toolkit和Java锁分析器...

JavaGG
2010/03/24
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
10
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
16
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
16
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部