一、堆内存参数配置

-Xms10g :JVM启动时申请的初始堆内存值
-Xmx20G :JVM可申请的最大Heap值
-Xmn3g : 新生代大小,一般设置为堆空间的1/3 1/4左右,新生代大则老年代小
-Xss :Java每个线程的Stack大小
-XX:PermSize :持久代(方法区)的初始内存大小
-XX:MaxPermSize : 持久代(方法区)的最大内存大小
-XX:SurvivorRatio : 设置新生代eden空间和from/to空间的比例关系,关系(eden/from=eden/to)

二、调试跟踪参数配置

-XX:+PrintGC :打印GC日志
-XX:+PrintGCDetailsGC :时的详细堆信息
-XX:+PrintHeapAtGC :打印GC前后的堆信息
-XX:+PrintGCTimeStamps :输出GC发生时间,输出的时间为虚拟机启动的偏移量
-XX:+PrintGCApplicationConcurrentTime :输出应用程序执行时间
-XX:+PrintGCApplicationStoppedTime :输出应用程序由于GC产生停顿的时间
-XX:+PrintRefrenceGC :输出软引用、弱引用、虚引用和Finalize队列
-XX:+HeapDumpOnOutOfMemoryError :产生OOM时可以在内存溢出时导出整个堆信息
-XX:HeapDumpPath :导出堆文件存放路径
-XX:+TraceClassLoading :跟踪类加载信息
-XX:+TraceClassUnloading :跟:踪类卸载信息
-XX:PrintClassHitogram :查看系统中的类的分布情况(占用空间最多、实例数量空间大小)
-XX:+PrintVMOptions :打印虚拟机接收到的命令行显示参数
-XX:+PrintCommandLineFlags :打印虚拟机的显式和隐式参数
-XX:+PrintFlagsFinal :打印虚拟机的所有系统参数

三、GC参数设置

3.1 串行收集器相关的参数

-XX:+UseSerialGC 使
-XX:SurvivorRatio edensurvivor
-XX:PretenureSizeThreshold,
-XX:MaxTenuringThreshold

3.2 并行相关的参数

-XX:+UseParNewGC 使
-XX:+UseParallelOldGC 使
-XX:+ParallelGCThreads 线CPUCPU8ParallelGCThreadsCPUCPU8ParallelGCThreads3+((5*CPU_COUNT)/8
-XX:MaxGCPauseMillis
-XX:GCTimeRatio 0~100n,1/(1+n)
-XX:+UseAdaptiveSizePolicy GCJVMedensurvivior

3.3 CMS回收器相关的参数

-XX:+UseConcMarkSweepGC CMS
-XX:ParallelCMSThreads CMS线
-XX:CMSInitiatingOccupancyFraction 6868%CMS
-XX:UseCMSCompactAtFullCollection CMS
-XX:CMSFullGCsBeforeCompaction CMS
-XX:+CMSClassUnloadingEnabled
-XX:CMSInitiatingPermOccupancyFraction CMSCMSClassUnloadingEnabled
-XX:UseCMSInitiatingOccupancyOnlyCMS

3.4 G1 回收器相关的参数

-XX:+UseG1GC 使G1
-XX:MaxGCPauseMillis
-XX:GCPauseIntervalMillis