JVM调优与监控

 

随时记录,方便以后查看:

 

1 -XX:+HeapDumpOnOutOfMemoryError 虚拟机在OOM异常以后,自动生成dump文件

 

2 -Xms20M 堆初始化20M 

 

3 -Xmx20M 堆最大20M

 

4 -Xmn10M 新生代10M

 

5 -XX:SurvivorRatio=8 表示young区,EdenSpace,SurvivorSpace(SurvivorTo,SurvivorFrom)的比例为8:1:1

 

6 -XX:PretenureSizeThreshold=2097152 单位B,表示对象大于这个值(2M),则直接进入Old区

 

7 -verbose:gc 打印GC信息

 

8 -XX:MaxTenuringThreshold=15 表示一个对象在新生代中,在15次MinorGC之后还依然存活,就将其放入Old区

 

9 如果Survivor空间中相同年龄所有对象大小的总和大于Survivor空间总和的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到XX:MaxTenuringThreshold要求的年龄。

 

10 垃圾收集方式: 串行收集,并行收集,并发收集

 

串行收集(Serial:[范围:新生代,复制回收] ,Serial Old:[范围:老年代,标记-整理]):单线程回收,stop the world. 适合于Client端运行,比如桌面应用程序

 

并行收集(ParNew[相对于Serial,-XX:SurvivorRatio,-XX:PretenureSizeThreshold,-XX:HandlePromotionFailure其为多线程,目前只有它才能与CMS配合工作,-XX:ParalleGCThreads=10控制垃圾收集的线程数]),Parallel Scavenge[吞吐量优先,达到一个可控的吞吐量,-XX:MaxGCPauseMillis 垃圾回收停顿的时间,-XX:GCTimeRatio 吞吐量大小,吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间),-XX:UseAdaptiveSizePolicy 这是一个开关参数,设置这个参数之后,就不需要手工指定,-Xmn,-XX:SurvivorRation,-XX:PretnureSizeThreshold等参数,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整]):多线程收集,stop the word. 适合吞吐量大的服务,比如后台大型计算服务器

 

 

并发收集(CMS:Concurrent Mark Sweep,标记-清楚:[CMS:initial mark[stop the world],CMS:concurrent mark,CMS:remark[stop the world] ,CMS:current sweep ]):多线程并发回收,应用在B/S中,响应速度快

 

 

11 -XX:UseSerialGC 虚拟机运行在Client模式下默认,Seriaal+Serial Old

 

12 -XX:UseParNewGC                ParNew + Serial Old

 

13 -XX:UseConcMarkSweepGC  ParNew+CMS+Serial Old 

 

14 -XX:UseParallelGC  虚拟机运行在Server模式下默认 Parallel Scavenge + Serial Old(PS MarkSweep)

 

15 -XX:UseParallelOldGC  :  Parallel Scavenge + Parallel Old

 

16 -XX:HandlePromotionFailure : 是否允许担保失败,即老年代的剩余空间不足以应付新生代整个Eden and Survivor 区所有对象都存活的极端情况

 

17 -XX:CMSInitiatingOccupancyFranction 设置CMS收集器老年代空间被占用多少后触发FULL GC(Major GC),默认68%,仅在CMS收集时有效

 

18  -XX:CMSCompactAtFullCollection CMS 收集器在完成拉圾收集后是否要进行一次内存碎片整理.仅在CMS收集时有效

 

19 -XX:CMSFULLGCsBeforeCompaction CMS若干次收集之后,启动一次碎片整理,仅在CMS收集时有效

 

 

 

 

你可能感兴趣的:(JVM调优)