核心参数
-Xms :java堆内存的大小
-Xmx :java最大可分配的堆内存
-Xmn : 新生代的堆内存大小,扣除之后就为老年代的堆内存大小
-XX:Permsize || -XX:MetaspaceSize :永久代大小
-XX:MaxPermsize || -XX:MaxMetaspaceSize :永久代最大大小
-Xss :每个线程的栈内存大小
-XX:- HandlePromotionFailure:设置为true时,Minor GC会判断平均每个GC剩余的对象大小是否能放入永久代
-XX:PretenureSizeThreshold:大对象直接进入老年代的阈值
-XX:MaxTenuringThreshold:新生代进入老年代的年龄阈值
-XX:+UseParNewGC:新生代使用parNew垃圾回收器
-XX:ParallelGCThreads:并行垃圾回收线程的数量,一般不建议修改这个参数
-XX:+UseCMSCompactAtFullCollection:CMS full gc后进行内存整理
-XX:CMSFullGCsBeforeCompaction:几次Full GC之后 会触发一次Compaction操作
-XX:+CMSParallelInitialMarkEnabled:这个参数会在CMS垃圾回收器的“初始标记”阶段开启多线程并发执行
-XX:+CMSScavengeBeforeRemark:这个参数会在CMS的重新标记阶段之前,先尽量执行一次Young GC
-XX:SoftRefLRUPolicyMSPerMB:软引用的时间限制,默认值是1000毫秒,设置为0会被快速回收,会导致JVM反射动态生成类出现大幅度波动,千万别让设置为0,可以设置个1000,2000,3000,或者5000毫秒,都可以,软引用能否回收的判断公式clock - timestamp <= freespace * SoftRefLRUPolicyMSPerMB,“clock - timestamp”代表了一个软引用对象他有多久没被访问过了,freespace代表JVM中的空闲内存空 间,SoftRefLRUPolicyMSPerMB代表每一MB空闲内存空间可以允许SoftReference对象存活多久
-XX:TraceClassLoading :追踪类加载的情况
-XX:TraceClassUnloading:追踪类卸载的情况
-XX:G1HeapRegionSize:指定G1 region的大小
-XX:G1NewSizePercent:指定G1新生代初始占比
-XX:G1MaxNewSizePercen:指定G1新生代最大占比
-XX:MaxGCPauseMills:G1执行GC时最多让系统停顿的时间
-XX:InitiatingHeapOccupancyPercent:默认值是45%,G1老年代占据了堆内存的45%的Region的时候,此时就会尝试触发一个新生代+老年代一起回收的混合回收阶段
-XX:G1MixedGCCountTarget:就是在一次混合回收的过程中,最后一个阶段执行几次混合回收,默认值是8次
-XX:G1HeapWastePercent:G1混合回收的region达到这个设置的比例就停止混合回收
-XX:G1MixedGCLiveThresholdPercent:默认值85%,G1回收region的时候,必须存活对象小于这个设定的值才能被回收
-XX:+PrintGCDetils:打印详细的gc日志
-XX:+PrintGCTimeStamps:这个参数可以打印出来每次GC发生的时间
-Xloggc:gc.log:这个参数可以设置将gc日志写入一个磁盘文件
-XX:+DisableExplicitGC:禁止显示执行GC
-XX:+HeapDumpOnOutOfMemoryError:OOM时导出内存快照
-XX:HeapDumpPath=/usr/local/app/oom:OOM时导出内存快照地址