查看整个JVM内存状态

jmap -heap [pid]

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

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

jmap -histo [pid]

可以通过jmap -histo [pid] | head -20查看top20的实例个数以及内存占用情况

导出整个JVM 中内存信息,可以通过eclipse的mat插件查看明细

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文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。

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

java jmap mat_java内存调优之jmap,jstack,mat相关推荐

  1. [java] JVM监控与调优

    原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html   光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...

  2. Java启动参数与内存调优一些学习笔记

    转载自  Java启动参数与内存调优一些学习笔记 .参数的含义 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M JV ...

  3. java 内存调优_JVM内存模型以及性能调优

    JVM 内存模型 JVM.png 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. ...

  4. 发布即巅峰:Java性能调优六大工具:MAT内存分析工具

    MAT内存分析工具 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基于Eclipse开发的一款免费的性 ...

  5. Java虚拟机学习(5):内存调优

    JVM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略.由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间. 减少Full GC次 ...

  6. java kpi_JAVA内存调优的KPI

    当我们在进行Java应用程序的内存和垃圾收集调优时,应该根据关键性能指标做出一系列的决定.但有大量的指标; 选择哪一个,抛弃哪一个?本文将解释内存调优正确的KPI. 内存调优的KPI包括: 吞吐量,响 ...

  7. Jvm 系列(六):Java 服务 GC 参数调优案例

    本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...

  8. jvm系列(六):Java服务GC参数调优案例

    本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...

  9. Java服务GC参数调优案例

    这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题.我个人特别喜欢这种实战类的内容,经原作者的授权同意,将文章分享于此.原文链接:Java服务GC参数调优案例,下面为 ...

最新文章

  1. ajax请求成功之后,自动打开一个空白页面,并打印出了返回内容
  2. 数字图像处理实验(11):PROJECT 05-02,Noise Reduction Using a Median Filter
  3. oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案
  4. 10个最常见的数据库缺陷
  5. 七夕(情人节)表白女朋友,程序员应该如何装一波13
  6. STM32L0 读取芯片温度与当前供电电压 STM32L051C8T6
  7. OpenGL 视图和颜色的概念
  8. 洛谷——P1000 超级玛丽游戏
  9. 51Nod1682 中位数计数【中位数】
  10. webAudioAPI
  11. cad上样条曲线上的点太多了_学习CAD,我总结了五个阶段,你是那个段位?
  12. java如何开根号?
  13. SiTime 硅晶振抖动定义和测量方法
  14. 希腊语 - 希腊字母表对应的意思 - 数据挖掘必备
  15. 上门洗车APP开发的功能
  16. snort实验(一)
  17. DFS求岛屿最大面积
  18. Fortofy扫描漏洞解决方案
  19. 微信小程序报错“getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.js...“
  20. android点击按钮发出声音

热门文章

  1. js判断移动端,pc端,安卓,苹果浏览器的方法
  2. AUTOSAR从入门到精通100讲(四十一)-基于AUTOSAR与Matlab开发应用层三部曲-应用层总体功能开发和集成
  3. C语言过时了吗?不,我们需要的是一份个人成长
  4. apk改之理_一份礼物.apk-O泡果奶的逆向分析
  5. 【TypeScript系列教程09】条件语句的使用
  6. ubuntu下的jdk进行升级_如何在ubuntu上更新jdk版本
  7. 10个在线Web设计开发工具介绍
  8. 课时109.外边距合并现象(掌握)
  9. http://www.tldp.org/LDP/abs/abs-guide.txt.gz
  10. 浅谈我所见的CSS命名风格