# JVM配置(GC相关)

java -jar [jvm config] XXX.jar

-XX:ParallelGCThreads=`cat /proc/cpuinfo| grep "processor"| wc -l| xargs -i expr {} \* 1 / 4 + 1` //gc线程数(命令:获取1/4c + 1)
-XX:MaxGCPauseMillis=100 //设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。
-XX:+UseParallelGC //设置使用新生代ParallelScavenge + 老年代ParallelOld
-XX:+UseAdaptiveSizePolicy //(自适应大小策略) 是 JVM GC Ergonomics(自适应调节策略) 的一部分,每次 GC 后会重新计算 Eden、From 和 To 区的大小,计算依据是 GC 过程中统计的 GC 时间、吞吐量、内存占用量。
-XX:+UseParallelOldGC //设置使用新生代ParallelScavenge + 老年代ParallelOld
-server //虚拟机使用何种运行模式,client模式启动比较快,但运行时性能和内存管理效率不如server模式。
-Xss512k //指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程大约需要占用多少内存,可能会有多少线程同时运行等。
-Xnoclassgc //关闭虚拟机对class的垃圾回收功能
-XX:+DisableExplicitGC //禁止代码中显示调用GC
-XX:+HeapDumpOnOutOfMemoryError //表示当JVM发生OOM时,自动生成DUMP文件。
-XX:HeapDumpPath=${log_path}/heapdump_`date +%Y%m%d%H%M%S`.hprof //表示生成DUMP文件的路径,也可以指定文件名称
-XX:+PrintGCDetails //用于打印输出详细的GC收集日志的信息.
-XX:+PrintGCTimeStamps //打印CG发生的时间戳,jvm启动时间为起点的相对时间
-XX:+PrintGCDateStamps //打印CG发生的时间戳,系统时间
-XX:+PrintHeapAtGC //每次一次GC后,都打印堆信息
-XX:+PrintClassHistogram //打印出实例的数量以及空间大小
-XX:+PrintTenuringDistribution //指定JVM 在每次新生代GC时,输出幸存区中对象的年龄分布
-XX:+PrintGCApplicationStoppedTime //每次GC使程序停顿的时间
-Xloggc:${log_path}/gc/gc.log.`date +%Y%m%d`"
Last Updated: 7/21/2021, 11:16:54 AM