通用参数优化
-Xms35g 堆的最大内存
-Xmx35g 堆的最小内存
-Xss1024 线程栈内存大小,默认是1024单位是KB
-Xmn10g 新生代内存大小
-XX:NewRatio=4 新生代(Eden和两个Survivor)和老年代内存大小比例
-XX:SurvivorRatio=4 Eden和Survivor分区比例,默认是8
-XX:MaxPermSize=16m 永久代内存大小
XX:MaxTenuringThreshold=5 新生代转化为老年代时垃圾回收年龄即次数,G1中默认是15,越小,majorGC越频繁
-XX:-UseGCOverheadLimit 取消垃圾回收内存限制
-XX:MaxDirectMemorySize=10g 设置对外内存大小,默认和Xmx一样大
-XX:+HeapDumpOnOutOfMemoryError 内存溢出时dump快照用于分析
-XX:+HeapDumpBeforeFullGC fullGCq前dump一次
-XX:+HeapDumpAfterFullGC fullGC后dump一次
-XX:HeapDumpPath=/tmp/ dump文件路径,每次dump就会生成一个文件,命名规则举例:/tmp/java_pid27301.hprof ,/tmp/java_pid27301.hprof.1
-XX:MaxDirectMemorySize=10g 堆外内存限制
-XX:-UseGCOverheadLimit 取消GC时内存限制
G1收集器参数优化
-XX:+UseG1GC 指定G1搜集器
-XX:+PrintFlagsFinal
-XX:+PrintReferenceGC
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintAdaptiveSizePolicy
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGC -Xloggc:/tmp/spark.gc.log G1的垃圾日志路径
-XX:+UnlockDiagnosticVMOptions
-XX:+G1SummarizeConcMark
-XX:InitiatingHeapOccupancyPercent=35 并行时线程数,G1的阶段1数
-XX:ConcGCThreads=15 并发线程 , G1的阶段2线程数