1.打印gc日志
eclipse.ini文件配置如下
-vmargs
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-verbose:gc
-Xloggc:gc.log
通过eclipse启动的tomcat,在Installed jres下配置vm argument
-XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError
2.日志分析
[GC [DefNew: 107743K->6585K(118016K), 0.0267541 secs] 147055K->45897K(183552K), 0.0268449 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
新生代回收前107743K,回收后6585K,回收前总量118016K,Heap 回收前147055K回收后45897K,回收前总量183552K
如果出现频繁回收,总量不变的情况,说明总量太小,需要调高,如果出现总量不断提高,可以调高内存分配的最小值。
新生代空间不足,调大-Xmn
heap不足,调大-Xms -Xmx
3.jvm参数分析
-xmn 新生代内存大小,太小会导致频繁的小型垃圾回收,果断或导致很少的小型回收,fullgc增加,影响性能。推荐为堆大小的1/4
-Xms 初始堆大小
-Xmx 最大堆大小
-XX:+UseParallelGC 双核支持
-XX:PermSize=128M 初始非堆内存
-XX:MaxPermSize=512M
非堆内存,即我们经常看到的PermGen space ,是指内存的永久保存区域这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。
分享到:
相关推荐
认识JVM内存优化, 避免最大的误区:认为JVM内存越大越好。看到一个线程 blocked就认为阻塞了。
Linux环境的Tomcat JVM内存优化 java虚拟机内存溢出问题的解决
jvm优化;
Jvm性能优化-JVM内存结构原理分析03
JVM内存模型深度剖析与优化
JVM 深入学习教程深入分析JVM教程!jvm 内存原型,优化等等
某硅谷jvm内存分析优化教程,链接失效,请私聊我。某硅谷jvm内存分析优化教程,链接失效,请私聊我。某硅谷jvm内存分析优化教程,链接失效,请私聊我。
数据库简单优化、jvm内存数据库简单优化、jvm内存数据库简单优化、jvm内存数据库简单优化、jvm内存
JVM内存模型和性能优化
jvm性能调优-jvm内存模型和优化-performance-jvm-memorymodel-optimize
1、JVM参数推荐 2、Java运行时数据区 3、JVM内存模型 4、堆的内存划分 5、垃圾回收(GC) 6、JVM参数汇总
java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优
Tomcat性能优化及JVM内存工作原理,适用于运维人员,开发人员
其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用; 本文...
23丨如何优化JVM内存分配?.html
NULL 博文链接:https://lihongchao87.iteye.com/blog/1688576
- 了解下我们为什么要学习JVM优化 - 掌握jvm的运行参数以及参数的设置 - 掌握jvm的内存模型(堆内存) - 掌握jamp命令的使用以及通过MAT工具进行分析 - 掌握定位分析内存溢出的方法 - 掌握jstack命令的使用 - 掌握...
JVM的内容分享,包含JVM的优化目标、优化原则、JVM组成、内存区域划分、垃圾回收算法、垃圾回收器、FullGC触发时机、对象布局、元空间存储、GC调优