GC之七--gc日志分析工具
摘要:性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。 Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc日志 -verbose.gc开关可显示GC的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间
阅读全文
posted @
2016-11-23 11:10
duanxz
阅读(16358)
推荐(1) 编辑
mat(Eclipse Memory Analyzer tool)之二--heap dump分析
摘要:在工作中可能会遇到内存溢出这种灾难性的问题,那么程序肯定是存在问题,找出问题至关重要,上一篇文章讲了jmap命令的使用方法,当然用jmap导出的文件我们也看不懂啊,那就交给memory analyzer(mat)这个工具,让他帮助我们来观察程序的内存分布情况吧。 MAT 不是一个万能工具,它并不能处
阅读全文
posted @
2016-11-09 10:42
duanxz
阅读(10347)
推荐(2) 编辑
十三、jdk命令之Java内存之本地内存分析神器:NMT 和 pmap
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V
阅读全文
posted @
2016-05-17 10:15
duanxz
阅读(7163)
推荐(1) 编辑
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)远程的监控工具连接到本地的JVM执行命令
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V
阅读全文
posted @
2016-05-16 13:41
duanxz
阅读(1900)
推荐(0) 编辑
性能测试之开源的性能监控软件
摘要:对 于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监 控和保持系统启动并运行是多么的不容易。基于此原因,我们已编写了最常使用的18个命令行工具列表,这些工具将有助于每个Linux/Unix 系统管理员的工
阅读全文
posted @
2015-11-26 20:28
duanxz
阅读(3031)
推荐(0) 编辑
java对象在内存中的结构(HotSpot虚拟机)
摘要:一、对象的内存布局 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。 32位: 64位: 从上面的这张图里面可以看出,对象在内存中的结构主要包含以下几个部分: 对象头: Mark Word(标
阅读全文
posted @
2015-11-15 18:45
duanxz
阅读(19850)
推荐(7) 编辑
JVM参数之-XX:+HeapDumpOnOutOfMemoryError(导出内存溢出的堆信息(hprof文件))
摘要:当出现HeapDumpOnOutOfMemoryError错误时,我们需要分析原因,下面的程序就是模拟这个错误并导出dump文件,好让你分析 GcTest.java 这个文件在桌面上,所以执行编译: 执行 GcTest.bat: 结果如下: gc.hprof文件用内存分析工具分析如mat打开 分析
阅读全文
posted @
2015-10-18 22:02
duanxz
阅读(32866)
推荐(1) 编辑
jvm调优之四:生产环境参数实例及分析【生产环境实例增加中】
摘要:java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweepGC-XX:CMSInitiatingOccupancyFraction=78-XX:ThreadS
阅读全文
posted @
2015-10-18 22:01
duanxz
阅读(2361)
推荐(0) 编辑
Thread之一:线程生命周期及六种状态
摘要:《Thread之一:线程生命周期及五种状态》 《Thread之二:sleep、wait、yield、join》 《juc线程池原理(四): 线程池状态介绍》 一、线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识
阅读全文
posted @
2015-08-06 15:53
duanxz
阅读(13475)
推荐(0) 编辑
一、jdk工具之jps(JVM Process Status Tools)命令使用
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V
阅读全文
posted @
2015-05-19 20:22
duanxz
阅读(5653)
推荐(2) 编辑
java调优1:找出Java进程中大量消耗CPU
摘要:问题分析:1,程序属于CPU密集型,和开发沟通过,排除此类情况。2,程序代码有问题,出现死循环,可能性极大。问题解决:1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。2,记得原来通过strace跟踪的方法解决了一台PHP服务器CPU占用高的问题,但是通过这种方法无效,经过google
阅读全文
posted @
2014-12-12 16:19
duanxz
阅读(7156)
推荐(0) 编辑
八、jdk工具之JvisualVM、JvisualVM之一--(visualVM介绍及性能分析示例)
摘要:目录 一、jdk工具之jps(JVM Process Status Tools)命令使用 二、jdk命令之javah命令(C Header and Stub File Generator) 三、jdk工具之jstack(Java Stack Trace) 四、jdk工具之jstat命令(Java V
阅读全文
posted @
2014-05-14 21:38
duanxz
阅读(15582)
推荐(4) 编辑
JVM参数汇总
摘要:一、java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,这些都是不
阅读全文
posted @
2013-12-19 15:56
duanxz
阅读(7680)
推荐(0) 编辑
Thread Dump 分析综述
摘要:最近在做性能测试,需要对线程堆栈进行分析,在网上收集了一些资料,学习完后,将相关知识整理在一起,输出文章如下。 一、Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工具。每一个Java虚拟机都有及时生成所有线程在某一点状态的t
阅读全文
posted @
2012-11-05 13:32
duanxz
阅读(707)
推荐(0) 编辑
采集HeapDump、ThreadDump
摘要:一、Windows 1、Control + Break 转向服务器的标准输出窗口并按下Control + Break组合键, 之后需要将线程堆栈、内存堆栈信息复制到文件中。 示例还是中的示例: 了解String类的intern()方法--从Java7开始,字符串常量池从Heap空间移动到Metasp
阅读全文
posted @
2012-11-04 16:34
duanxz
阅读(817)
推荐(0) 编辑
八、jdk工具之JvisualVM之四--VisualVM 进行性能分析及调优
摘要:背景知识 性能分析的主要方式 监视:监视是一种用来查看应用程序运行时行为的一般方法。通常会有多个视图(View)分别实时地显示 CPU 使用情况、内存使用情况、线程状态以及其他一些有用的信息,以便用户能很快地发现问题的关键所在。 转储:性能分析工具从内存中获得当前状态数据并存储到文件用于静态的性能分
阅读全文
posted @
2012-10-25 16:40
duanxz
阅读(924)
推荐(0) 编辑
统计JVM进程中线程数两种方式小记
摘要:I. 统计进程中的线程数 相关系列博文推荐: 180711-JVM定位分析CPU性能消耗 180704-JDK常用监控参数 jvm调优的工具介绍 1. proc查询 /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU、中断、内存、磁盘等等 查看状态命令 cat /pr
阅读全文
posted @
2012-10-25 15:14
duanxz
阅读(2085)
推荐(0) 编辑
mat之三--PermGen Metaspace永久代内存分析
摘要:一、jdk1.6上的perm gen 我们在上2篇文章中知道,perm gen是个异类,里面存储了类和方法数据(与class loader有关)以及interned strings(字符串驻留)。在heap dump中没有包含太多的perm gen信息。那么我们就用这些少量的信息来解决问题吧。 看下
阅读全文
posted @
2012-10-25 15:05
duanxz
阅读(2396)
推荐(0) 编辑