JVM常用参数

常用参数和日志打印

常用设置

参数 解释
-Xms java堆内存的大小
-Xmx java堆内存的最大大小
-XX:PeremSize 永久代大小
-XX:MaxpermSize 永久代最大大小
-Xmn 堆内存中的新生代大小
-Xss 每个线程栈内存的大小
-XX:Max Tenuring Threshold 多少岁进入老年代,默认是15
-XX PretenureSize Threshold 对象多大直接进入老年代,不经过新生代
-XX HandlePromotionFailure 是否要进行判断 判断老年代的内存大小是都大于之前每一次minor gc之后的进入老年代的对象的平均大小
-XX:SurvivorRatio=8 表示eden区域占比为80%
-XX: +UseParNewGC 定垃圾回收器为ParNew,一般来说机器是几核,垃圾回收器并发执行的线程就会有几个,四核机器就是4个,8核机器就是8个
-XX:ParallelGCThreads 设置垃圾回收器使用线程数量,一般来说不要动
-XX: NewSize 新生代
-XX: +UserCMSCOmpactAtFullCollection 整理碎片
-XX: CMSFullBeforeCompaction=5 五次fullgc之后进行一次碎片整理
XX:CMSInitiatingOccupancyFraction 设置CMS老年代回收阀值百分比
-XX:+CMSParallelInitialMarkEnabled CMS垃圾回收器的“初始标记”阶段开启多线程并发执行
-XX:+CMSScavengeBeforeRemark CMS的重新标记阶段之前,先尽量执行一次Young GC,原因:如果大部分新生代的对象被回收掉了,那么作为GC根的部分少了,从而提高重新标记的效率
-XX:TraceClassLoding 追踪类加载情况
-XX: TraceClassUnloading 追踪类卸载情况
-XX: SoftRefLRUPolicyMSPerMB 软引用存活时间
-XX:+DisableExplicltGC 禁止显示执行GC,为了避免开发工程师调用system.gc(),在流量高时候频发触发full gc
-XX:MetaspaceSize=10M 元空间内存设置
-XX:MaxMetaspaceSize=10M 元空间最大内存设置
-XX:+UseConcMarkSweepGC 使用CMS垃圾回收器

打印日志

参数 作用
-XX:+PrintGCDetails 打印gc详细日志
-XX:HeapDumpPath=/usr/local/app/oom 内存快照存放位置
-XX:+HeapDumpOnOutOfMemoryError 在oom的时候自动dump快照出来
-XX:+PrintGC 打印gc日志
-XX: =PrintGCTimesStamps 打印gc时间戳
-XX: +PrintHeapAtGC gc之后,打印堆信息
-Xloggc 打印日志