1.堆内存溢出示例代码 import java.util.ArrayList; import java.util.List; public class TestHeap { public static void main(String[] args) { List<User> list = new ArrayList<>(); while(true) { list.add(new User()); } } } Exception in thread "main"…
熟悉java的人都知道jdk的bin目录中有很多小工具,其中就包括用于监视虚拟机和故障处理的工具,今天就来仔细了解下各个工具的用法 jps JVM Process Status Tool,用于显示指定系统的内所有的Hotapot的虚拟机进程 1.用法 jps [options] [hostid] 2.参数列表 q:只输出LVMID,省略主类的名称 m:输出虚拟机进程启动时传递给主类main()函数的参数 l:输出主类的全名.若进程执行的是jar包,则输出jar路径 v:输出虚拟机进程启动时JVM…
http://blog.sina.com.cn/s/blog_5f5716580100u76r.html 语法:jstat [generalOption | outputOptions vmid [interval[s|ms] [count]]] 选项:1.generalOption-help 帮助-options 打印选项 2.outputOptions输出选项-h n 每n个样本,显示header一次-t n 在第一列显示时间戳列,时间戳时从jvm启动开始计算-Jjvmoption 传递jv…
Java虚拟机监控与调优,借助Java自带分析工具. jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程 jstat:JVM Statistics Monitoring Tool,用于收集和统计HotSpot虚拟机各方面的运行数据 jinfo:Configuration Info for Java,显示虚拟机配置信息 jmap:Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件) jstack:Stack Tr…
Java虚拟机内存模型及垃圾回收监控调优 如果你想理解Java垃圾回收如果工作,那么理解JVM的内存模型就显的非常重要.今天我们就来看看JVM内存的各不同部分及如果监控和实现垃圾回收调优. JVM内存模型         正如你上图所看到的,JVM内存可以划分为不同的部分,广义上,JVM堆内存可以划分为两部分:年轻代和老年代(Young Generation and Old Generation) 年轻代(Young Generation) 年轻代用于存放由new所生成的对象.当年轻代空间满时,…
理论总是作为指导实践的工具,能把这些知识应用到实际工作中才是 我们的最终目的. 给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处理数据的手段.这里说的数据包括:运行日志.异常堆栈.GC日志.线程快照( threaddump/javacore文件).堆转储快照(heapdump/hprof文件)等.经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据.定位解决问题的速度,但在学习工具前,也应当意识到工具永远都是知识技能的一层包装,没有什么工具是“秘密武器”,不可能学…
通过前面的几篇博客,我们介绍了Java虚拟机的内存分配以及内存回收等理论知识,了解这些知识对于我们在实际生产环境中提高系统的运行效率是有很大的帮助的.但是话又说回来,在实际生产环境中,线上项目正在运行,我们怎么去监控虚拟机运行效率?又或者线上项目发生了OOM,异常堆栈信息,我们又怎么去抓取,然后怎么去分析定位问题呢? 本篇博客,我们就来介绍各种虚拟机监控和分析工具,当然都是命令行工具,不够直观,下篇博客我们会介绍各种可视化工具. 1.jps:显示虚拟机进程 JVM Process Status…
JDK自带的工具可以方便的帮助我们处理一些问题,包括查看JVM参数,分析内存变化,查看内存区域,查看线程等信息. 我们熟悉的有java.exe,javac.exe,javap.exe(偶尔用),jps.exe,jmap.exe....等,下面会详细介绍.分别在linux和windows下面介绍.windows与linux下面使用的都是JDK1.7.0_80 windows下的jdk版本如下: $ java -version java version "1.7.0_80" Java(TM…
jre的bin目录下的工具,都非常小.它都是tools.jar下面的代码的一层封装而已.tools.jar不是java标准,是Hotspot实现的. 名称 作用 jps JVM Process Status Tool,现实指定系统内所有的HotSpot虚拟机进程 jstat JVM Statistics Monitoring Tool,用于收集Hotspot虚拟机各个方面的运行参数 jinfo Configuration Info for Java,现实虚拟机配置信息 jmap Memory m…
上节学习回顾 从课本章节划分,<垃圾收集器>和<内存分配策略>这两篇随笔同属一章节,主要是从理论+实验的手段来讲解JVM的内存处理机制.好让我们对JVM运行机制有一个良好的概念,才能继续往下学习. 本节学习重点 本节主要是针对JVM内存管理机制的一些监控手段,例如堆情况使用的监控,线程栈情况的监控等.有几句废话还是有必要在这里强调的,工具是人类思维的工具,例如Java语言是人类满足需求的一种技术手段,而监控工具只是维护程序应用的一种手段.所以,思考的逻辑思维要清晰,是问题引导工具,…