线程Dump,包含所有线程的运行状态。纯文本格式。
堆Dump,包含线程Dump,幵包含所有堆对象的状态。二进制格式。

Java Dump方法
1.使用Java虚拟机制作Dump
指示虚拟机在发生内存不足错误时,自动生成堆Dump
-XX:+HeapDumpOnOutOfMemoryError

2.使用图形化工具制作Dump
使用JDK(1.6)自带的工具:Java VisualVM。

3.使用命令行制作Dump
jstack:打印线程的栈信息,制作线程Dump。
jmap:打印内存映射,制作堆Dump。

步骤:
检查虚拟机版本(java -version)
找出目标Java应用的进程ID(jps)
使用jstack命令制作线程Dump  Linux环境下使用kill命令制作线程Dump
使用jmap命令制作堆Dump

都位于jdk的bin目录下

1.jps显示当前系统的java进程情况,及其id号

jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

2.jstack用于生成java虚拟机当前时刻的线程快照。

线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

http://www.hollischuang.com/archives/110

3.jmap是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成Heap Dump。

常见内存错误:
outOfMemoryError 年老代内存不足。
outOfMemoryError:PermGen Space 永久代内存不足。
outOfMemoryError:GC overhead limit exceed 垃圾回收时间占用系统运行时间的98%或以上。

http://www.hollischuang.com/archives/303

4.jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。

5.jhat(Java Heap Analysis Tool),是一个用来分析java的堆情况的命令。之前的文章讲到过,使用jmap可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,将dump文件转成html的形式,然后通过http访问可以查看堆情况。jhat命令解析会Java堆dump并启动一个web服务器,然后就可以在浏览器中查看堆的dump文件了。

jhat还提供了一种对象查询语言(Object Query Language),OQL有点类似SQL,可以用来查询。

6.javap是jdk自带的一个工具,可以对代码反编译,可以查看java编译器生成的字节码。

http://www.hollischuang.com/archives/1107

https://www.cnblogs.com/frinder6/p/5440173.html

参考:http://www.hollischuang.com/archives/308

http://www.importnew.com/18398.html

一次服务大量超时的java排查过程经验

Java应用调试利器——BTrace教程

Java常用命令及Java Dump相关推荐

  1. Java常用命令汇总(笔记)

    Java常用命令汇总 文章目录 Java常用命令汇总 1.javac 将文件编译成.class文件 2.java 执行 .class文件,若类中没有main函数,则不能执行. 3.jar 主要用于打包 ...

  2. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式...

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...

  3. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年10 ...

  4. java常用命令javac、javap、jps、jstack

    本文参考http://www.hollischuang.com/?s=java%E5%91%BD%E4%BB%A4%E5%AD%A6%E4%B9%A0 作为一个java开发人员,应该了解java常用指 ...

  5. maven3常用命令、java项目搭建、web项目搭建

    ------------------------------maven3常用命令--------------------------- 1.常用命令 1)创建一个Project mvn archety ...

  6. kafka java api 删除_Kafka入门系列—6. Kafka 常用命令及Java API使用

    常用命令 启动Zookeeper ./zkServer.sh start-foreground 可选参数: ./zkServer.sh {start|start-foreground|stop|res ...

  7. HDFS文件系统(含hdfs常用命令,java对hdfs API的简单操作)

    HDFS文件系统 HDFS概念 什么是HDFS HDFS的组成 HDFS文件块大小 HFDS命令行操作 基本语法 常用命令 Java操作hdfs 配置编译环境 获取文件系统 上传文件 文件下载 目录创 ...

  8. Java常用命令及参数

    Java的基本指令参数 javac [-d 目录|-verbose] file java [-classpath(cp) dir] file jar -zcvf dir file javap [-pr ...

  9. Docker 从入门到实践系列三 - Docker 常用命令,java高级开发工程师面试问题

    容器命令 镜像运行起来后,称为容器. 下面以 Tomcat 为例 搜索镜像 docker search tomcat 下载镜像 docker pull tomcat 运行容器 运行tomcat doc ...

最新文章

  1. java 自带thread分析工具_java自带的jvm分析工具
  2. java对象转json字符串日期格式_Gson转Json字符串时将日期类型转换成Long型的方法...
  3. 【Lucene3.6.2入门系列】第10节_Tika
  4. android tabhost 多个activity,Android:TabHost中Activity的生命周期问题
  5. 实战 | WebMagic 爬取某保险经纪人网站经纪人列表之网站列表爬取
  6. 如何做到免驱打印_证卡打印机云打印方案
  7. 华为Mate 40系列开启线下预约:麒麟9000“末代”旗舰
  8. OPPO Find X,一款(可能)被全面屏“耽搁”了的AI手机
  9. 又拍网架构-又一个用到python的网站(转载)
  10. 在Android系统中添加宏控制代码【原创】
  11. 简易呼吸灯c语言程序,呼吸灯 - 单片机教程 - C语言网
  12. Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
  13. jquery—addClass方法和removeClass方法
  14. 深入理解B/S与C/S架构
  15. 生鲜配送APP软件开发快速制作
  16. 柳比歇夫时间管理法 | 让你的时间管理更有效率
  17. 商用三维虚拟数字人如何制作
  18. 【运筹学】对偶理论 : 影子价格 ( 对偶问题的经济解释 )
  19. 关于springboot访问页面
  20. ps2口键盘改usb计算机设置,轻松把PS2键盘、鼠标接口改造成USB接口

热门文章

  1. webscraper多页爬取_【实践】笔记_Chrome插件webscraper爬取天眼通数据
  2. OpenCV中的SURF(Speeded-Up Robust Features 加速鲁棒特征)
  3. windows10+Python3.7安装dlib库进行面部标志识别
  4. C语言:随笔8--结构体
  5. GitHub开源的超逼真俄罗斯方块游戏
  6. 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
  7. 【敏捷开发】Node.js(nodejs)实现一个接口完成增删改查聚合接口4个功能,最大限度节省接口数量,正所谓“一口多用”(基础版、免登陆、无鉴权)
  8. 【小心勿喷,吃饭中的小朋友最好别看】史上最搞笑的前端vue文件命名,没有之一,呵呵哒
  9. 【Unity教程】创建一个完整的驾驶游戏
  10. LTE SIB1时频资源