jvm调优参数

114 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

JVM参数的含义

参数名称含义
-Xms初始堆大小
-Xmx最大堆大小
-Xmn年轻代大小
-XX:NewSize设置年轻代大小
-XX:MaxNewSize年轻代最大值(for 1.3/1.4)
-XX:PermSize设置持久代(perm gen)初始值
-XX:MaxPermSize设置持久代最大值
-Xss每个线程的堆栈大小
-XX:ThreadStackSizeThread Stack Size
-XX:NewRatio年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久
-XX:SurvivorRatioEden区与Survivor区的大小比值
-XX:LargePageSizeInBytes内存页的大小不可设置过大, 会影响Perm的大小
-XX:+UseFastAccessorMethods原始类型的快速优化
-XX:+DisableExplicitGC关闭System.gc()
-XX:MaxTenuringThreshold垃圾最大年龄
-XX:+AggressiveOpts加快编译
-XX:+UseBiasedLocking锁机制的性能改善
-Xnoclassgc禁用垃圾回收
-XX:SoftRefLRUPolicyMSPerMB每兆堆空闲空间中SoftReference的存活时间
-XX:PretenureSizeThreshold对象超过多大是直接在旧生代分配
-XX:TLABWasteTargetPercentTLAB占eden区的百分比
-XX:+CollectGen0FirstFullGC时是否先YGC
  • 并行收集器相关参数
名称含义
-XX:+UseParallelGC FullGC采用parallel MSC
-XX:+UseParNewGC设置年轻代为并行收集
-XX:ParallelGCThreads并行收集器的线程数
-XX:+UseParallelOldGC年老代垃圾收集方式为并行收集
-XX:MaxGCPauseMillis每次年轻代垃圾回收的最长时间
-XX:+UseAdaptiveSizePolicy自动选择年轻代区大小和相应的Survivor区比例
-XX:GCTimeRatio设置垃圾回收时间占程序运行时间的百分比
-XX:+ScavengeBeforeFullGC FullGC前调用YGC

CMS相关参数

名称含义
-XX:+UseConcMarkSweepGC使用CMS内存收集
-XX:CMSFullGCsBeforeCompaction多少次后进行内存压缩
-XX:+CMSParallelRemarkEnabled降低标记停顿
-XX+UseCMSCompactAtFullCollection在FULLGC的时候,对年老代的压缩
-XX:+UseCMSInitiatingOccupancyOnly使用手动定义初始化定义开始CMS收集
-XX:CMSInitiatingOccupancyFraction=70使用cms作为垃圾回收使用70%后开始CMS收集
-XX:CMSInitiatingPermOccupancyFraction设置PermGen使用到达多少比率时触发
-XX:+CMSIncrementalMode设置为增量模式

辅助信息

名称含义
-XX:+PrintGC打印gc
-XX:+PrintGCDetailsgc详情
-XX:+PrintGCApplicationStoppedTime打印垃圾回收期间程序暂停的时间.可与上面混合使用
-XX:+PrintGCApplicationConcurrentTime打印每次垃圾回收前,程序未中断的执行时间.可与上面混合使用
-XX:+PrintHeapAtGC打印GC前后的详细堆栈信息
-Xloggc:filename把相关日志信息记录到文件以便分析.与上面几个配合使用
-XX:+PrintClassHistogramgarbage collects before printing the histogram.
-XX:+PrintTLAB查看TLAB空间的使用情况
-XX:+PrintTenuringDistribution查看每次minor GC后新的存活周期的阈值