Java常用命令及Java Dump
线程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相关推荐
- Java常用命令汇总(笔记)
Java常用命令汇总 文章目录 Java常用命令汇总 1.javac 将文件编译成.class文件 2.java 执行 .class文件,若类中没有main函数,则不能执行. 3.jar 主要用于打包 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式...
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...
- Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正
Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年10 ...
- 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常用指 ...
- maven3常用命令、java项目搭建、web项目搭建
------------------------------maven3常用命令--------------------------- 1.常用命令 1)创建一个Project mvn archety ...
- kafka java api 删除_Kafka入门系列—6. Kafka 常用命令及Java API使用
常用命令 启动Zookeeper ./zkServer.sh start-foreground 可选参数: ./zkServer.sh {start|start-foreground|stop|res ...
- HDFS文件系统(含hdfs常用命令,java对hdfs API的简单操作)
HDFS文件系统 HDFS概念 什么是HDFS HDFS的组成 HDFS文件块大小 HFDS命令行操作 基本语法 常用命令 Java操作hdfs 配置编译环境 获取文件系统 上传文件 文件下载 目录创 ...
- Java常用命令及参数
Java的基本指令参数 javac [-d 目录|-verbose] file java [-classpath(cp) dir] file jar -zcvf dir file javap [-pr ...
- Docker 从入门到实践系列三 - Docker 常用命令,java高级开发工程师面试问题
容器命令 镜像运行起来后,称为容器. 下面以 Tomcat 为例 搜索镜像 docker search tomcat 下载镜像 docker pull tomcat 运行容器 运行tomcat doc ...
最新文章
- java 自带thread分析工具_java自带的jvm分析工具
- java对象转json字符串日期格式_Gson转Json字符串时将日期类型转换成Long型的方法...
- 【Lucene3.6.2入门系列】第10节_Tika
- android tabhost 多个activity,Android:TabHost中Activity的生命周期问题
- 实战 | WebMagic 爬取某保险经纪人网站经纪人列表之网站列表爬取
- 如何做到免驱打印_证卡打印机云打印方案
- 华为Mate 40系列开启线下预约:麒麟9000“末代”旗舰
- OPPO Find X,一款(可能)被全面屏“耽搁”了的AI手机
- 又拍网架构-又一个用到python的网站(转载)
- 在Android系统中添加宏控制代码【原创】
- 简易呼吸灯c语言程序,呼吸灯 - 单片机教程 - C语言网
- Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
- jquery—addClass方法和removeClass方法
- 深入理解B/S与C/S架构
- 生鲜配送APP软件开发快速制作
- 柳比歇夫时间管理法 | 让你的时间管理更有效率
- 商用三维虚拟数字人如何制作
- 【运筹学】对偶理论 : 影子价格 ( 对偶问题的经济解释 )
- 关于springboot访问页面
- ps2口键盘改usb计算机设置,轻松把PS2键盘、鼠标接口改造成USB接口
热门文章
- webscraper多页爬取_【实践】笔记_Chrome插件webscraper爬取天眼通数据
- OpenCV中的SURF(Speeded-Up Robust Features 加速鲁棒特征)
- windows10+Python3.7安装dlib库进行面部标志识别
- C语言:随笔8--结构体
- GitHub开源的超逼真俄罗斯方块游戏
- 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
- 【敏捷开发】Node.js(nodejs)实现一个接口完成增删改查聚合接口4个功能,最大限度节省接口数量,正所谓“一口多用”(基础版、免登陆、无鉴权)
- 【小心勿喷,吃饭中的小朋友最好别看】史上最搞笑的前端vue文件命名,没有之一,呵呵哒
- 【Unity教程】创建一个完整的驾驶游戏
- LTE SIB1时频资源