转载:http://blog.csdn.net/kevin_luan/article/details/8447896

http://liulinxia02.blog.163.com/blog/static/26868772009111861834942/

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的使用权.

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

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 远程监控。

分类: Java基础
本文转自demoblog博客园博客园,原文链接http://www.cnblogs.com/0616--ataozhijia/p/4136312.html如需转载请自行联系原作者
demoblog

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

  1. jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件

    http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/ 其中jmap是java自带的工具 查看整个JVM内存状 ...

  2. 使用JMAP dump及分析dump文件

    查看整个JVM内存状态  jmap -heap [pid] 要注意的是在使用CMS GC 情况下,jmap -heap的执行有可能会导致Java 进程挂起 查看JVM堆中对象详细占用情况 jmap - ...

  3. java基础之HashMap源码分析

    目录 1. HashMap原理分析 1.1. HashMap继承体系 1.2.Node数据结构分析 1.3.底层储存结构 1.3.1.put方法分析 1.4.hash碰撞 1.4.1.key值的唯一性 ...

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

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

  5. Java基础篇之利用IO流给文件加密、解密

    目标:给文件加密.解密(最基础版) 注意: a.加密过程:先读取整个目标文件,然后将目标文件写入一个新的文件中,在写入的过程中,每隔几个字符插入一个加密符号(随意定),此时这个新的文件就是加密文件 b ...

  6. java 基础api实现上传,上传文件到7牛云存储的java api一个简单的demo实现

    最近在做一个项目,需要用到云存储,项目用的是七牛云.现在将项目过程中关于调用七牛云平台的java api来上传本地文件到七牛云空间的一个简单的demo展示给大家,希望对同样再用七牛云的童鞋们有所帮助. ...

  7. 【Java基础】递归输出目录下所有文件路径

    递归输出目录下所有文件路径 import java.io.File;public class FileTest {public static void main(String[] args) {// ...

  8. java 基础之图片的多线程处理和大文件的多线程拷贝

    图片的多线程处理 public class PhotoHandle {public static void main(String[] args) {File file = new File(&quo ...

  9. Java基础笔记6——File、流、枚举、断言

    Java基础笔记6 十一.File 代表文件或目录的类. 所表示的文件或目录在计算机中不一定真实存在. 绝对路径:以盘符或者/开头的路径--不以当前路径为基准,直接跳转到指定的位置 相对路径:不以盘符 ...

  10. Java heap dump及分析

    本文内容: 如何进行 heap dump MAT 的使用 object 的 Incoming 与 Outgoing References object 的 Shallow Size 与 Retaine ...

最新文章

  1. 新技术、新思维开创公共安全管理新模式
  2. 移动端页面输入法挡住input输入框的解决方法
  3. 计算机一级b类论理,计算机一级B论理参考题.doc
  4. .NET Core多平台项目模板eShopOnContainers编译手记
  5. 数据结构 旅游规划(Dijkstra+Dfs)
  6. [dp] LeetCode 62. Unique Paths
  7. JQuery Datatables Dom 和 Language 参数详细说明
  8. NAT(网络地址转换)实现方式
  9. Matplotlib模块的使用
  10. 【编译打包】btsync-1.2.82-beta.el6.src.rpm
  11. 华中科技大学计算机组成原理教材,2017华中科技大学《计算机组成原理》考研套装资料...
  12. python开发面试自我介绍_面试中怎样做一个精彩的自我介绍
  13. html b5纸尺寸,b5纸的大小?
  14. 第21节 ACL——控制路由器上接口大门的进出规则
  15. halcon例程学习笔记(8)---瓶子编号识别bottle2.hdev
  16. [Ubuntu 16.04] [Memos] install samba
  17. 直接添加集合对象Arrays.asList()
  18. ios上webview与浏览器webview
  19. 电机的matlab仿真实例,电机控制Matlab仿真模型
  20. 计算机视觉(相机标定;内参;外参;畸变系数)

热门文章

  1. 开发好的项目必须要有好的需求
  2. 4.5 NiN CNN、tensorflow实现——python实战
  3. 深度学习:循环神经网络RNN的变体
  4. 【SimpleITK】分割label覆盖到原图上显示
  5. html圆圈复选框的代码,单选、复选框Demo
  6. 发送邮件的python脚本
  7. Ubuntu18 mongodb 离线安装
  8. windows环境中JDK环境变量配置
  9. 1159 最大全0子矩阵
  10. 关于如何安装cocoapods