https://andyniu.iteye.com/blog/1965571

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文件。

然后装入快照即可。

linux手动生成dump文件权限不足_linux下生成dump文件方法及设置相关推荐

  1. 如何更改linux文件权限设置,linux文件权限学习笔二——如何修改文件权限(chgrp,chown,chmod)...

    linux文件权限学习随笔二--如何修改文件权限 一.修改文件所属组群--chgrp 修改文件所属组群很简单-chgrp命令,就是change group的缩写(我们可以利用这些来记忆命令) 语法:c ...

  2. linux 文件夹换所属用户,Linux中账号管理之权限管理(下)

    linux中的账号管理我们在前面两张已经介绍了一些用户和组的相关概念,常用的配置文件,命令的使用.现在我们来看看账号管理中最傲娇的部分就是我们的权限管理. 一.简单介绍权限的概念 以install.l ...

  3. linux sed给空文件首行插入_linux下批量修改文件后缀名以及合并多行

    写在前面 感谢乔兄送测的公司,让我终于所有营业 part1讲下怎么解决小问题 part2分享谈判过程 part3mark张兄的奶茶 PART1 linux下批量修改文件后缀名以及合并多行 近期师兄在做 ...

  4. python判断linux中文件是否存在_linux shell 中判断文件、目录是否存在的方法

    本文主要介绍了linux shell 中判断文件.目录是否存在的方法,分享给大家 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为 ...

  5. linux系统修改只读文件权限如(etc/hosts)文件

    linux系统下修改hosts文件的权限 sudo chmod a+w hosts 通常hosts文件时只读的,需要修改文件时, 到文件所在目录下运行终端, 然后通过下面命令加入写的权限:sudo c ...

  6. linux为用户指定资源大小,Linux_Linux系统下生成一个指定大小的文件,在装系统,因此在这里随便记 - phpStudy...

    Linux系统下生成一个指定大小的文件 在装系统,因此在这里随便记点东西. 从前与经理讨论NVR项目的时候,他提到要预先将用户指定好的磁盘空间预留出来,这是比较容易实现的功能.不容易实现的是自己写一个 ...

  7. linux中如何复制文件并重命名_linux 下文件重命名/移动/复制命令(转)

    linux下重命名文件:使用mv命令就可以了, 例:要把名为:abc   重命名为:123 可以这样操作: 重命名:MV命令 1.进入你的文件目录,运行命令:   /cd  dir  (dir指的是你 ...

  8. kali修改文件权限不够_Linux用户权限管理及用户权限管理命令操作

    Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性 ...

  9. linux 手动解压or增加or更新 jar 包中文件

    查看 jar 包中的文件列表,进行重定向,输出到txt文件 jar -tvf aa.jar > aa.txt 更新文件到 jar 中,目录需对应 jar -uf aa.jar com/aa.cl ...

最新文章

  1. 使用单片机对STC8G,8H,8A进行ISP下载程序
  2. Linux中iptables的用法
  3. TCP/IP 中的二进制反码求和算法
  4. 不同的Hibernate命名策略
  5. Apprentissage du français partie 1
  6. ftp一直弹出用户名密码_不懂操作?手把手教你如何在linux下搭建FTP
  7. Docker学习总结(53)—— Docker 十个非常实用但又容易忽视的使用技巧
  8. App Tamer Mac版常见问题解答
  9. 2012-1-31学习日记
  10. 2020湖南省技能竞赛获奖名单_高光时刻!肇庆市中等职业学校学生专业技能竞赛获奖名单公布~...
  11. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  12. CC2540F256RHAR
  13. 苹果公司CEO乔布斯演讲的15个秘诀
  14. 10php1c,很急的一個問題,請幫幫忙
  15. vue如何跳转支付宝付款页面
  16. java exchange 日历_如何通过EWS-API 获取所有会议室的日历信息
  17. c语言 编程 打怪,一起用C语言打怪物
  18. QQ音乐for Mac 已经登陆MAC OSX
  19. 算法——机器学习——无监督学习—— K均值(K-means)图解动画
  20. 自己总结的一些spring面试题

热门文章

  1. 《研发企业管理——思想、方法、流程和工具》——1.7 企业研发管理的目的
  2. ldconfig和ldd用法
  3. B树 B+树 B*树
  4. 从CUDA开始读OpenCL
  5. 信息学奥赛一本通(2032:【例4.18】分解质因数)
  6. 信息学奥赛一本通(1057:简单计算器)
  7. 25 WM配置-策略-入库策略5-定义托盘策略P(Pallet Strategy)
  8. 45 SD配置-销售凭证设置-分配订单类型/状态参数文件
  9. wifi软件linux版本,[转载]Wii安装运行可用WIFI的Linux系统全攻略
  10. 自定义oracle异常,Oracle自定义异常