文档章节

如何让Java应用把当前内存情况输出到文件中供分析

Oscarfff
 Oscarfff
发布于 2016/12/01 14:33
字数 364
阅读 19
收藏 0

当对当前系统的情况进行分析的时候,内存分析很重要,因为有时候内存溢出不是立即产生的,而是等待运行一段时间后才产生的。所以把系统内存当前运行的情况heap dump出来分析一下很重要,现在就直接说方法吧。

一 找到jmap工具

首先到Java JDK 的bin 目录下面(如果已经把JDK的bin 放在环境变量搜索上下文里面了,就不需要到JDK的目录下),例如: 在linux 下面 到 /opt/java6/bin 目录下面 ,而不是到 /opt/java6/jre/bin 。

在这个目录下面找到jmap工具然后用

jmap [ option ] pid
jmap -dump:format=b,file=heapdump-49761.bin 49761

具体其他jmap 的用法可以参 http://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html

关于确定进程的pid可以用 jps  -l 来确定相应的进程ID,关于-l 参数说明。

-l 

Output the full package name for the application's main class or the full path name to the application's JAR file.

 

http://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html

二 使用相应的内存分析工具来分析

常用的有MAT或者 hpjmeter 

三 其他情况

如果你的内存日志文件比较大,这些工具分析比较费劲,可以采用先进行一次full gc.然后在生成heap文件进行分析。

jcmd <pid> GC.run

 

© 著作权归作者所有

共有 人打赏支持
Oscarfff
粉丝 72
博文 815
码字总数 96913
作品 0
崇明
后端工程师
线上Java应用排查和诊断规范

@郑昀 整理 标准做法一:OOM触发HeadpDump 目的: OOM发生时,输出堆栈快照文件,供研发人员分析。 在JVM中,如果98%的时间是用于 GC 且可用的 Heap size 不足2%的时候,将抛出 OOM 异常。...

旁观者-郑昀
2013/09/26
0
0
JVM汇总--jvm调优-命令篇

GC的最根本原因:垃圾收集器的工作就是清除Java创建的对象,垃圾收集器需要清理的对象数量以及要执行的GC数量均取决于已创建的对象数量。因此,为了使你的系统在GC上表现良好,首先需要减少创...

素雷
04/12
0
0
java虚拟机内存监控工具jps,jinfo,Jstack,jstat,jmap,jhat使用

基于Sun HotSpot JVM 这里将介绍几款sun hotspot jvm 自带的监控工具: 请确保java_home/bin配置到path环境变量下,因为这些工具都在jdk的bin目录下 jps(JVM Process Status Tool):JVM机进程...

我类个擦
2014/09/12
0
1
IBM和SAP开源其JVM诊断工具

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

JavaGG
2010/03/24
0
0
jvm优化必知系列——监控工具

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

wier
2017/10/18
0
14

没有更多内容

加载失败,请刷新页面

加载更多

no such module 'pop'问题

在github上 clone 了一个 swift 项目,编译时提示"no such module 'POP'"错误,查了一下居然是因为podfile中指定的最低版本是iOS 11.0,大于我测试手机的iOS版本10.3.3,将Podfile中的最低版...

yoyoso
21分钟前
0
0
redis 系列一 -- 简介及安装

1.简介 redis -- remote dictionary server 远程字典服务 使用 C 语言编写; 高性能的 key-value数据库; 内存数据库,支持数据持久化。 Redis 是一个开源(BSD许可)的,内存中的数据结构存...

imbiao
45分钟前
1
0
nginx log记录请求响应时间

有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如 添加一个新的log_format log_format timed_combined '$remote_addr - $remote_user [$time_local] "...

swingcoder
今天
2
0
Spring MVC之RequestMappingHandlerMapping匹配

对于RequestMappingHandlerMapping,使用Spring的同学基本都不会陌生,该类的作用有两个: 通过request查找对应的HandlerMethod,即当前request具体是由Controller中的哪个方法进行处理; 查...

爱宝贝丶
今天
2
0
Java Web--增删改查之二界面后台java代码(转载参考)

/** *  *//** * @author Administrator * */package dao; import java.sql.*;public class DBConn {/** * 链接数据库 * @return */  ...

小橙子的曼曼
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部