http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/

其中jmap是java自带的工具

查看整个JVM内存状态

jmap -heap [pid]

要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致JAVA 进程挂起

查看JVM堆中对象详细占用情况

jmap -histo [pid]

导出整个JVM 中内存信息

jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况

jhat -J-Xmx1024M [file]

执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000

eclipse Memory Analyzer

Eclipse 提供的一个用于分析JVM 堆Dump文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。

http://www.eclipse.org/mat/

kill -3 [pid]

在Linux 上找到Java所在的进程号,然后执行以上命令,线程的相关信息就输出到console

jstack

jstack 是sun JDK 自带的工具,通过该工具可以看到JVM 中线程的运行状况,包括锁等待,线程是否在运行

执行 jstack [pid] ,线程的所有堆栈信息

"http-8080-10" daemon prio=10 tid=x0a949bb60 nid=0x884  waiting for monitor entry [...]

"http-8080-10" 这个线程处于等待状态。 waiting for monitor entry 如果在连续几次输出线程堆栈信息都存在于同一个或多个线程上时,则说明系统中有锁竞争激烈,死锁,或锁饿死的想象。

“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() [...]

java.lang.Thread.State:waiting (on object monitor)

该表示http-8080-11的线程处于对象的Wait 上,等待其他线程的唤醒,这也是线程池的常见用法。

“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable [...] java.lang.Thread.State:runnable

表示“Low Memory Detector” 的线程处于Runable状态,等待获取CPU的使用权.

jvisualvm

一.Java VisualVM 概述

对于使用命令行远程监控jvm 太麻烦 。 在jdk1.6 中 Oracle 提供了一个新的可视化的。 JVM 监控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目录下。

双击启动 Java VisualVM 后可以看到窗口左侧 “应用程序 ”栏中有“ 本地 ”、“远程 ” 、“快照 ”三个项目。

“本地 ”下显示的是在 localhost 运行的 Java 程序的资源占用情况,如果本地有 Java 程序在运行的话启动 Java VisualVM 即可看到相应的程序名,点击程序名打开相应的资源监控菜单,以图形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、类、线程的 统计信息。

“远程” 项下列出的远程主机上的 Java 程序的资源占用情况,但需要在远程主机上运行 jstatd 守护程序

VisualVM分为 3 类, 本地 它会自动侦测到,并显示出来

双击Local 下的任一节点,看到右边的变化 ,你可以监控 CPU ,内存,类,线程等运行状况,实时监控服务器性能。

右键 VisualVM我们可以看到 Thread Dump, Heap Dump

做 Thread Dump 很快,马上就可以看到结果

Heap Dump要稍花费一些时间(可以看到当前 heap 里对象的数量及占用的比例,做 OOM 很好用)

对其功能不再做描述,可以查阅网上相关质量,我们主要讲的是如何使用 VisualVM 远程监控。

jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件相关推荐

  1. java8 监控文件变化_[Java 8] (4) 列举目录下的所有文件和监视文件变化

    列举目录中的所有文件 首先给出代码: Files.list(Paths.get(".")).forEach(System.out::println); Files.list方法得到 ...

  2. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  3. lin通信ldf文件解析_基于LIN协议的代码自动生成系统及方法_2014108531085_说明书_专利查询_专利网_钻瓜专利网...

    技术领域 本发明属于汽车电子LIN网络通讯领域,公开了一种利用LDF文件自动生成LIN通讯软件代码的方法. 背景技术 目前汽车电子产品的软件开发逐渐向模块化.标准化.集成化.自动化发展.LIN通讯模块 ...

  4. jmap 文件解析_使用jmap dump出来的java堆镜像文件,可以用什么打开做详细分析

    匿名用户 1级 2018-11-15 回答 其中jmap是java自带的工具 查看整个JVM内存状态 jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行 ...

  5. jmap 文件解析_干货分享丨jvm系列:dump文件深度分析

    摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...

  6. python删除文件夹无法访问_零基础小白必看:python基本操作-文件、目录及路径

    使用python的os模块,简单方便完成对文件夹.文件及路径的管理与访问操作. 1 前言 在最近开发中,经常需要对文件进行读取.遍历.修改等操作,想要快速.简单的完成这些操作,我选择用 python ...

  7. python目录及文件_零基础小白必看:python基本操作-文件、目录及路径

    1 前言 在最近开发中,经常需要对文件进行读取.遍历.修改等操作,想要快速.简单的完成这些操作,我选择用 python .通过 python 的标准内置 os 模块,只需要几行代码,即可完成想要的操作 ...

  8. java class 文件分析_大概优秀的java程序员都要会分析class文件吧

    相信大家在学java的时候都会听到这样的一些结论: enum 是一个类 泛型的实现使用了类型擦除技术 非静态内部类持有外部类的引用 需要将自由变量声明成final才能给匿名内部类访问 ... 初学的时 ...

  9. 【E文件解析】Java实现E文件解析为对象

    参照一位大佬贡献的代码修改的(扩展了对象解析,修改了一些bug,比如流异常未关闭) E语言解析包_e文件-Java代码类资源-CSDN下载 封装好了,三行代码解析为对象 github:  https: ...

最新文章

  1. android 图片二维码识别和保存(二)
  2. 面向对象的JavaScript-009-闭包
  3. YOLOv2和YOLOv3效果对比
  4. C++ STL的查找算法
  5. node.js——麻将算法(五)胡牌算法的一些优化处理方案(有赖子版)
  6. CSS 设置表格格式
  7. 【mysql基础知识】解决java写入数据库时中文乱码的问题
  8. php 什么是函数式编程,函数式编程的介绍和归纳总结(附代码)
  9. oracle开启未活动连接清理,Oracle inactive session的清理
  10. javascript创建对象过程
  11. 帆软函数TOIMAGE应用
  12. 对Javascript“闭包”的简单理解
  13. 详解贪心算法的几个经典问题(代码详解)
  14. 期货市场的大户黑手(最大的是华尔街 高盛之流)
  15. 什么是存储过程?有什么优点?
  16. CADD课程学习(13)-- 研究蛋白小分子动态相互作用-II(水中的溶菌酶 GROMACS)
  17. Contiki学习笔记——Cooja启动失败
  18. WinRar 解压缩文件官方去广告版
  19. Linux下使用Shell脚本实现反向ssh自动交互
  20. 使用自动化学报latex模板时,dvi2pdf失败

热门文章

  1. 200行自定义异步非阻塞Web框架
  2. 超详细 1小时学会Python输入和输出!
  3. resoult在python啥意思,python - __lt__而不是__cmp__
  4. ubuntu运行docker报错:invalid mount config for type “bind“: field Source must not be empty.(没解决)
  5. 【opencv4】opencv视频教程 C++(opencv教程)1、opencv介绍和环境搭建
  6. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)
  7. Visual studio那些破事。。。(生成静态库、生成动态库、引用静态库、引用动态库)
  8. python numpy.arange() 函数的使用方法 (在给定间隔内返回均匀间隔的值)
  9. Java PriorityQueue优先队列详解(源码+图文步骤解析)
  10. billibilli html5播放,Thousands of people online are involved in ef...