以下是基于Tomcat日志的JVM参数调优建议,核心围绕内存管理、垃圾回收及监控展开:
堆内存设置
-Xms2g -Xmx2g),避免运行时动态调整堆大小,减少Full GC频率。-XX:NewRatio设置新生代与老年代比例(如-XX:NewRatio=2,新生代占堆的1/3),根据对象生命周期调整(短期对象多则增大新生代)。元空间优化(Java 8+)
-XX:MetaspaceSize和-XX:MaxMetaspaceSize控制类元数据空间(如-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m),避免永久代(PermGen)溢出问题。选择合适收集器
-XX:ParallelGCThreads设置并行线程数(通常等于CPU核心数)。-XX:+UseG1GC),可设置最大暂停时间(-XX:MaxGCPauseMillis=200,单位毫秒)。关键参数调优
-XX:SurvivorRatio调整Eden区与Survivor区比例(如-XX:SurvivorRatio=8,Eden占80%),减少对象过早晋升老年代。-XX:InitiatingHeapOccupancyPercent(触发GC的堆占用比例,默认45)。启用GC日志
catalina.sh中添加:-verbose:gc -Xloggc:/path/to/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps,通过日志分析GC频率、耗时及内存回收情况。实时监控工具
-XX:ParallelGCThreads),避免资源竞争。参考来源: