linux下生成dump文件方法及设置
linux下生成dump文件方法及设置
Linux中生成 Core Dump 文件的方法
1 什么是 Core Dump
Core Dump 又叫核心转储。在程序运行过程中发生异常时,将其内存数据保存到文件中,这个过程叫做 Core Dump。
2 Core Dump 的作用
在开发过程中,难免会遇到程序运行过程中异常退出的情况,这时候想要定位哪里出了问题,仅仅依靠程序自身的信息打印(日志记录)往往是不够的,这个时候就需要 Core Dump 文件来帮忙了。
一个完整的 Core Dump 文件实际上相当于恢复了异常现场,利用 Core Dump 文件,可以查看到程序异常时的所有信息,变量值、栈信息、内存数据,程序异常时的运行位置(甚至记录代码行号)等等,定位所需要的一切信息都可以从 Core Dump文件获取到,能够非常有效的提高定位效率。
3 如何生成 Core Dump
前UAP主要使用IBM jdk和SUN jdk,当中间件发生内存溢出时,IBM jdk会自动生成dump文件,而SUN jdk不会生成,所以我们通常推荐使用IBMjdk。
但在有些时候,我们需要分析jvm内存使用情况,例如各分区占用率,哪些对象占用等,需要我们手动生成dump文件,以下说明linux下IBMjdk和SUNjdk手工生成dump文件方法。
第一步:查看进程PID (命令为:ps –ef|grep java);
第二步:进入到jdk目录下 (命令为:cd/data/jdk1.6.0_27)
进入到bin目录下 (命令为:cd bin)
第三部:分析JVM内存
./jmap –heap pid 查看整个JVM的内存使用情况,例如:
./jmap –histo pid 查看JVM中对象内存占用情况
导出整个JVM中的内存信息
jdk/bin目录下生成文件 (命令为:./jmap –dump:format=b,file=[文件名])
例如:./jmap –dump:format=b,file=0807.txt 27054
生成文件为二进制文件,无法直接查看,需要借助jvm分析工具。
自动生成:
1.2自动生成dump文件:
-
-XX:+HeapDumpOnOutOfMemoryError
当OutOfMemoryError发生时自动生成 Heap Dump 文件。这是一个非常有用的参数,因为当你需要分析Java内存使用情况时,往往是在OOM(OutOfMemoryError)发生时。
-
-XX:+HeapDumpBeforeFullGC
当 JVM 执行 FullGC 前执行 dump。 -
-XX:+HeapDumpAfterFullGC
当 JVM 执行 FullGC 后执行 dump。 -
-XX:+HeapDumpOnCtrlBreak
交互式获取dump。在控制台按下快捷键Ctrl + Break时,JVM就会转存一下堆快照。 - -XX:HeapDumpPath=d:\test.hprof
指定 dump 文件存储路径。
注意:JVM 生成 Heap Dump 的时候,虚拟机是暂停一切服务的。如果是线上系统执行 Heap Dump 时需要注意。
2,查看dump文件
推荐使用jdk自带的visualVM,其在JDK_HOME/bin目录下,可搜:jvisualvm。注意:windows系统是jvisualvm.exe文件。
然后装入快照即可。
- php API接口最基本的写法
- 请仔细品味
- Annotation 和Spring Annotation 知识整理
- 【时间复杂度】你还在担心时间复杂度太高吗?
- module 与 component 的区别
- IIS网站——SSL安全加密机制
- 再谈Revit二次开发的可靠性和前景
- Revit二次开发入门相关安装和配置
- [SOA介绍]什么是SOA?
- c语言怎么键盘输入数据0停止,《C语言》上机考试题目.PDF
- c语言上机试题库及答案,《C语言上机试题及答案》.doc
- 最小二乘支持向量机预测matlab实现,最小二乘支持向量机及其 Pre
- 基于离散小波变换 (DWT)的图像信息隐藏算法
- 兔子吃狼 引发的人力资源故事
- 网页弹出对话框的几种代码
- IDEA server乱码
- SQL注入