以下是基于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
),避免資源競爭。參考來源: