Metaspace 之三--jdk8 Metaspace 调优
摘要:简介 jdk8的元空间的初始大小是21M,如果启动后GC过于频繁,请将该值设置得大一些。 更多Meatspace内容见《Metaspace 之一:Metaspace整体介绍(永久代被替换原因、元空间特点、元空间内存查看分析方法)》 如果应用启动时,FGC出现了,可能是由于metaspace导致,例如
阅读全文
posted @
2019-01-16 13:50
duanxz
阅读(25441)
推荐(1) 编辑
java问题之1:Java的Finalizer引发的内存溢出
摘要:本文介绍的是Java里一个内建的概念,Finalizer。你可能对它对数家珍,但也可能从未听闻过,这得看你有没有花时间完整地看过一遍java.lang.Object类了。在java.lang.Object里面就有一个finalize()的方法。这个方法的实现是空的,不过一旦实现了这个方法,就会触发J
阅读全文
posted @
2019-01-16 10:48
duanxz
阅读(6301)
推荐(0) 编辑
JVM优化系列之一(-Xss调整Stack Space的大小)
摘要:Java程序中,每个线程都有自己的Stack Space(堆栈)。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。 Stack Space用来做方法的递归调用时压入Stack Frame(栈
阅读全文
posted @
2019-01-15 17:26
duanxz
阅读(4017)
推荐(0) 编辑
运行java飞行记录器JFR(java flight recorder)
摘要:JFR 上面讲到的工具都是作为快速的查看诊断工具的。如果要深入分析问题,可以选择使用内置的Java飞行记录器:Java Mission Control。 转储JFR需要三步: 1. 创建一个包含了你自己配置的JFR模板文件。运行jmc, 然后Window->Flight Recording Temp
阅读全文
posted @
2018-03-09 14:38
duanxz
阅读(20587)
推荐(3) 编辑
Java性能调优:利用JMC分析性能
摘要:Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻。 好的分析工具能起到事半功倍的效果,利用分析利器JMC、JFR,可以实现性能问题的准确定位。 本文主要阐述如何利用JMC分析系统性能 JMC:Java Mission Control JFR:Java Flight Reco
阅读全文
posted @
2018-03-09 12:15
duanxz
阅读(17228)
推荐(2) 编辑
Heap堆分析(堆转储、堆分析)
摘要:一、堆直方图 减少内存使用时一个重要目标,在堆分析上最简单的方法是利用堆直方图。通过堆直方图我们可以快速看到应用内的对象数目,同时不需要进行完整的堆转储(因为堆转储需要一段时间来分析,而且会消耗大量磁盘空间)。 直方图擅长识别由分配了一两个特定类的过多实例所引发的问题。例如应用中的内存压力是由一些特
阅读全文
posted @
2018-03-06 12:20
duanxz
阅读(15116)
推荐(0) 编辑
十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
摘要:目录 一、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-11-29 22:22
duanxz
阅读(26388)
推荐(3) 编辑
GC之七--gc日志分析工具
摘要:性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。 Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc日志 -verbose.gc开关可显示GC的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间
阅读全文
posted @
2016-11-23 11:10
duanxz
阅读(16358)
推荐(1) 编辑
Java堆外内存之六:堆外内存溢出问题排查
摘要:一、堆外内存组成 通常JVM的参数我们会配置 -Xms 堆初始内存 -Xmx 堆最大内存 -XX:+UseG1GC/CMS 垃圾回收器 -XX:+DisableExplicitGC 禁止显示GC -XX:MaxDirectMemorySize 设置最大堆外内存,默认是-xmx-survivor,也就
阅读全文
posted @
2016-11-22 15:07
duanxz
阅读(23213)
推荐(0) 编辑
GC之五--SystemGC完全解读
摘要:目录: GC之一--GC 的算法分析、垃圾收集器、内存分配策略介绍 GC之二--GC日志分析(jdk1.8)整理中 GC之三--GC 触发Full GC执行的情况及应对策略 gc之四--Minor GC、Major GC和Full GC之间的区别 GC之六--SystemGC完全解读 概述 JVM的
阅读全文
posted @
2016-11-22 15:06
duanxz
阅读(3175)
推荐(0) 编辑
Java堆外内存之二:堆外内存使用总结
摘要:目录: 《堆外内存操作类ByteBuffer》 《DirectBuffer》 《Unsafe(java可直接操作内存(),挂起与恢复,CAS操作)》 有时候对内存进行大对象的读写,会引起JVM长时间的停顿,有时候则是希望最大程度地提高JVM的效率,我们需要自己来管理内存(看起来很像是Java像C++
阅读全文
posted @
2016-11-22 11:22
duanxz
阅读(1778)
推荐(0) 编辑
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工具之jstack(Java Stack Trace)
摘要:目录 一、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-12 22:07
duanxz
阅读(12023)
推荐(0) 编辑
java调优
摘要:hystrix配置 配置下: "hystrix.threadpool.default.keepAliveTimeMinutes": 1 "hystrix.threadpool.default.allowMaximumSizeToDivergeFromCoreSize": true "hystrix.
阅读全文
posted @
2016-04-27 22:59
duanxz
阅读(2122)
推荐(1) 编辑
Java堆外内存之七:JVM NativeMemoryTracking 分析堆外内存泄露
摘要:Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能。我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据。 NMT介绍 工欲善其事必先利其器,我们先把相关需要的配置和工具介绍清楚,再通过例子来看看具体如何使用NMT。 打开N
阅读全文
posted @
2016-03-29 23:00
duanxz
阅读(11969)
推荐(1) 编辑
java问题之2:JVM堆外内存问题排查
摘要:Linux命令类 top netstat dmesg java的常用命令 jps jstack jinfo jmap dump jstat jdb CHLSDB 排查利器 btrace 首当其冲的要说的是btrace。真是生产环境&预发的排查问题大杀器。 简介什么的就不说了。直接上代码干 1、查看当
阅读全文
posted @
2016-02-23 15:27
duanxz
阅读(13924)
推荐(0) 编辑
十、jdk工具之Jdb命令(The Java Debugger)
摘要:目录 一、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-10-22 15:35
duanxz
阅读(2256)
推荐(0) 编辑
五、jdk工具之jmap(java memory map)、 mat之四--结合mat对内存泄露的分析、jhat之二--结合jmap生成的dump结果在浏览器上展示
摘要:目录 一、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-10-18 22:11
duanxz
阅读(8801)
推荐(1) 编辑
JVM参数之-XX:+HeapDumpOnOutOfMemoryError(导出内存溢出的堆信息(hprof文件))
摘要:当出现HeapDumpOnOutOfMemoryError错误时,我们需要分析原因,下面的程序就是模拟这个错误并导出dump文件,好让你分析 GcTest.java 这个文件在桌面上,所以执行编译: 执行 GcTest.bat: 结果如下: gc.hprof文件用内存分析工具分析如mat打开 分析
阅读全文
posted @
2015-10-18 22:02
duanxz
阅读(32866)
推荐(1) 编辑