资讯专栏INFORMATION COLUMN

JVM内存分析工具使用

alanoddsoff / 345人阅读

摘要:我们经常用到的一工具分析栈内存点击下载分析堆内存。下面我详细介绍一下他们具体是使用方法是自带的一个分析工具,我们可以在的安装目录找到中找到。

Java 内存堆栈分析。我们在分析现网问题时候,经常会遇到一些问题从日志上无法分析的疑难问题。在我们举足无措的时候,我们可以分析一些JVM内存,来看看问题出在哪里了。
我们经常用到的一工具:
分析栈内存(stack):jstack/kill -3 + IBM Thread and Monitor Dump Analyzer for Java (点击下载)
分析堆内存(heap): jmap + jhat。

我们通常是从栈信息入手来进行分析。下面我详细介绍一下他们具体是使用方法:
jstack是java自带的一个分析工具,我们可以在java的安装目录找到:$JAVA_HOME/bin 中找到。

使用方法usage里面的介绍非常明确了,我就不去翻译啦。我这里举个例子:

我们先查询一下java进程,因为jstack要根据java进程号来打印stack信息:
ps -ef|grep java

将stack信息记录到stack.out文件中: jstack -l 31155 > stack.out

我们再用BM Thread and Monitor Dump Analyzer for Java这个工具来分析。
这里可以清晰的看到线程数状态统计,和每个线程的状态。

具体的分析我们可以看看这篇文章。http://jameswxx.iteye.com/blog/1041173

jmap + jhat。这个两个命令也是java自带的,在$JAVA_HOME/bin中你也可以找到他们两个。
基本使用方法是:

先打印heap信息:jmap -dump:live,format=b,file=heap.bin
注意这个文件一般会很大。要看应用服务。

使用jhat分析:jhat -J-mx1024M heap.bin
这个命令会启动一个Server服务,默认的端口是7000。其中-mx是设置最大使用多少内存,如果你要分析的heap文件很大的话,这个值要配置很大,不然会包内存异常的错误。


我们主要看这个两个部分:
Show instance counts for all classes (excluding platform)
Show heap histogram
平台外的对象信息,和对象heap树状图,这个树状图包括所有对象的个数已经占有大小,占用的大小是bytes。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64272.html

相关文章

  • jvm原理

    摘要:在之前,它是一个备受争议的关键字,因为在程序中使用它往往收集器理解和原理分析简称,是后提供的面向大内存区数到数多核系统的收集器,能够实现软停顿目标收集并且具有高吞吐量具有更可预测的停顿时间。 35 个 Java 代码性能优化总结 优化代码可以减小代码的体积,提高代码运行的效率。 从 JVM 内存模型谈线程安全 小白哥带你打通任督二脉 Java使用读写锁替代同步锁 应用情景 前一阵有个做...

    lufficc 评论0 收藏0
  • 面试官问我JVM调优,我忍不住了!

    面试官:今天要不来聊聊JVM调优相关的吧?面试官:你曾经在生产环境下有过调优JVM的经历吗?候选者:没有面试官:...候选者:嗯...是这样的,我们一般优化系统的思路是这样的候选者:1. 一般来说关系型数据库是先到瓶颈,首先排查是否为数据库的问题候选者:(这个过程中就需要评估自己建的索引是否合理、是否需要引入分布式缓存、是否需要分库分表等等)候选者:2. 然后,我们会考虑是否需要扩容(横向和纵向都...

    不知名网友 评论0 收藏0
  • JVM详解3.JDK监控和故障处理工具

    摘要:点击进入我的博客命令行工具这些工具大多数是类库的一层薄的包装,它们的主要功能代码是在类库中实现的。可视化工具是到目前为止随发布的功能最强大的运行监视和故障处理程序,并且可以预见在未来一段时间内都是官方主力发展的虚拟机故障处理工具。 点击进入我的博客 3.1 JDK命令行工具 showImg(https://segmentfault.com/img/remote/14600000174...

    Keven 评论0 收藏0
  • 《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具

    摘要:虚拟机性能监控与故障处理工具详解概述本文参考的是周志明的深入理解虚拟机第四章,为了整理思路,简单记录一下,方便后期查阅。虚拟机堆转储快照分析工具功能用于分析生成的。 虚拟机性能监控与故障处理工具 详解 4.1 概述 本文参考的是周志明的 《深入理解Java虚拟机》 第四章 ,为了整理思路,简单记录一下,方便后期查阅。 JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的Vis...

    gself 评论0 收藏0
  • jvm调优

    摘要:垃圾回收垃圾检测引用计数法和可达性分析算法。引用计数法给一个对象添加引用计数器,每当有个地方引用它,计数器就加,引用失效就减。通常会在老年代内存被占满时将会触发,回收整个堆内存。 基础知识 JVM - HotSpot内存布局(1.8之前版本) showImg(https://segmentfault.com/img/bVMdE6?w=1024&h=608); 1.8版本开始,持久区没有...

    jemygraw 评论0 收藏0

发表评论

0条评论

alanoddsoff

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<