GC日志文件配置并发
-Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M性能
不当心忘记配置gc日志文件大小切割,长此以往,gc log文件很大,在gc日志中可能会出现 user time小,sys time小,可是real time很大,是由于io写gc文件去了spa
PermSize :永久代大小 ,例如:-XX:PermSize=256m (在jdk1.8中,没有PermSize概念,称之为元空间,因此这个配置在1.8会报错;只有 HotSpot 小于1.8才有 “PermGen space”)线程
元空间的本质和永久代相似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。所以,默认状况下,元空间的大小仅受本地内存限制日志
CMSParallelRemarkEnabled:下降标记停顿对象
CMSScavengeBeforeRemark:强制remark以前开始一次minor gc,减小remark的暂停时间,可是在 remark以后也将当即开始又一次minor gc内存
ParallelRefProcEnabled:若是应用有不少的Reference or finalizable objects,那么可使用- XX:+ParallelRefProcEnabled来减小durationci
UseCMSInitiatingOccupancyOnly:指定HotSpot VM老是使用-XX:CMSInitiatingOccupancyFraction的值做为old的空间使用率限制来启动CMS垃圾回收。若是没有使用-XX:+UseCMSInitiatingOccupancyOnly,那么HotSpot VM只是利用这个值来启动第一次CMS垃圾回收,后面都是使用HotSpot VM自动计算出来的值rem
CMSInitiatingOccupancyFraction:这个值指定了CMS垃圾回收时old代的空间占用率该是什么值。举例说 明,若是你但愿old代占用率是65%的时候,启动CMS垃圾回收,你能够设置-XX:CMSInitiatingOccupancyFraction=65。另一个能够同时使用的选项是get
UseConcMarkSweepGC:使用cms内存收集
UseParNewGC:设置年轻代为并行收集,可与CMS收集同时使用,JDK5.0以上,JVM会根据系统配置自行设置,因此无需再设置此值
CMSInitiatingPermOccupancyFraction: 这个参数的功能和-XX:CMSInitiatingOccupancyFraction很像,他指的是启动CMS周期的permanent代的占用率。这个参数一样须要和-XX:+CMSClassUnloadingEnabled配合使用。若是你想一直使用-XX:CMSInitiatingPermOccupancyFraction的值做为启动CMS周期的条件,你必需要指定另一个选项:-XX:+UseCMSInitiatingOccupancyOnly
CMSMaxAbortablePrecleanTime:设置preclean步骤的超时时间,单位为毫秒,preclean为cms gc其中一个步骤
ConcGCThreads:(早期JVM版本也叫-XX:ParallelCMSThreads)定义并发CMS过程运行时的线程数
MaxTenuringThreshold:晋升到老年代的对象的年龄(这个参数在jdk1.8中只能配置0-15)
NewRatio:年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代),-XX:NewRatio=4表示年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
Xms=Xmx而且设置了Xmn的状况下,该参数不须要进行设置。
ParallelGCThreads:并行收集器的线程数,此值最好配置与处理器数目相等
PretenureSizeThreshold:对象超过多大是直接在旧生代分配,-XX:PretenureSizeThreshold只对串行回收器和ParNew有效,对ParallGC无效。默认该值为0,即不指定最大的晋升大小,一切由运行状况决定
SurvivorRatio:eden和survior大小比例
TargetSurvivorRatio:设定幸存区的目标使用率
DisableExplicitGC :增长了-XX:+DisableExplicitGC,这个参数做用是禁止代码中显示调用GC,若是加上了这个JVM启动参数,那么代码中调用System.gc()没有任何效果,至关因而没有这行代码同样
-Xnoclassgc:关闭CLASS的垃圾回收功能,就是虚拟机加载的类,即使是不使用,没有实例也不会回收。若是一个类20分钟尚未使用,虚拟机会卸载这个类。若是这个类再次使用,虚拟机会从新加载这个类,因为虚拟机加载类包含了IO和内存分配的操做,所以加载时会对性能有所影响。对于通常应用,这个参数对性能影响不大
-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩.
-XX:CMSFullGCsBeforeCompaction=0:上面配置开启的状况下,这里设置多少次Full GC后,对年老代进行压缩
-XX:+CMSClassUnloadingEnabled:这个参数表示在使用CMS垃圾回收机制的时候是否启用类卸载功能。默认这个是设置为不启用的
-XX:+CMSParallelRemarkEnabled:为了减小第二次暂停的时间,开启并行remark: -XX:+CMSParallelRemarkEnabled。若是remark仍是过长的话