看了下线上tomcat的启动参数(从catalina.sh查看启动参数),总结一下每个参数的意义:
-Xms6g JVM初始分配的堆内存6g(一般来说是2g,但是因为做的是paas,对象的内存结构没有优化,导致一个对象特别大)
-Xmx6g JVM初始分配的堆内存6g
-XX:MetaspaceSize=4g JVM初始分配的元空间
-XX:MaxMetaspaceSize=4g JVM最大的元空间
-XX:NewSize=1g 新生代初始内存大小
-XX:MaxNewSize=1g 新生代最大内存大小
-XX:ParallelGCThreads=4 GC时进行内存回收的线程数
-XX:MaxTenuringThreshold=9 熬过9次young GC就进入老年代
-XX:+UseConcMarkSweepGC 使用ParNew+CMS+SerialOld进行组合回收,当CMS失败时,SerialOld作为后备回收器
-XX:+DisableExplicitGC 忽略System.gc()方法触发的垃圾回收
-XX:+UseCMSInitiatingOccupancyOnly 强迫JVM仅仅使用CMSInitiatingOccupancyFraction的值作为触发CMS的因素
-XX:+ScavengeBeforeFullGC 开启在full GC之前触发一次minor GC
-XX:+UseCMSCompactAtFullCollection 在CMS回收老年代之后进行一次内存碎片整理
-XX:+CMSParallelRemarkEnabled 并行的进行remark标记,降低GC停顿时间
-XX:CMSFullGCsBeforeCompaction=9 9次CMS老年代回收之后,进行一次内存碎片整理
-XX:CMSInitiatingOccupancyFraction=60 当老年代使用比率达到这个值时,触发cms
-XX:+CMSClassUnloadingEnabled 启用CMS清理永久代的功能,CMS卸载无用的class
-XX:SoftRefLRUPolicyMSPerMB=0 每次GC时,将软引用回收掉
-XX:-ReduceInitialCardMarks 关闭性能优化策略
-XX:+CMSPermGenSweepingEnabled 启用CMS清理永久代
-XX:CMSInitiatingPermOccupancyFraction=70 永久代使用比率达到多少时,会回收永久代
-XX:+ExplicitGCInvokesConcurrent System.gc()时会做background模式CMS GC,即并行FULL GC,可提高FULL GC效率
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-XX:+PrintGCDetails 输出详细的GC日志
-XX:+PrintGCTimeStamps 输出gc时间戳
-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,程序未中断的执行时间
-XX:+PrintHeapAtGC HotSpot在GC前后都会将GC堆的概要状况输出
-Xloggc:/data/applogs/heap_trace_%t.txt
-XX:-HeapDumpOnOutOfMemoryError 内存溢出时打印dump文件
-XX:HeapDumpPath=/data/applogs/HeapDumpOnOutOfMemoryError
网友评论