-Xms 初始堆大小
-Xmx 最大堆大小
-XX:NewSize= 新生代初始大小
-XX:NewRatio= 新生代:老年代 比值(如 4 表示 1:4,新生代佔 1/5)
-XX:SurvivorRatio= Eden:Survivor 比值(如 8 表示 8:2,單個 Survivor 佔新生代 1/10)
-XX:MaxPermSize= 永久代大小(JDK 8-)
-XX:MaxMetaspaceSize= 元空間大小(JDK 8+)
-XX:+UseSerialGC 串行收集器(單核/小堆)
-XX:+UseParallelGC 並行收集器(多核、吞吐優先)
-XX:+UseParallelOldGC 老年代並行收集(JDK 6+)
-XX:+UseConcMarkSweepGC CMS 並發收集器(響應優先)
-XX:+UseG1GC G1 收集器(大堆、平衡型)
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc: 日志輸出文件(生產必開)
-XX:ParallelGCThreads= GC 線程數(通常 = CPU 核心數)
-XX:MaxGCPauseMillis= 最大停頓目標(自動調整新生代大小)
-XX:GCTimeRatio= GC 時間佔比 = 1/(1+n)(默認 99 → 1%)
-XX:+UseAdaptiveSizePolicy 自適應調整新生代/Survivor 比例(推薦開啟)
-XX:+CMSIncrementalMode 增量模式(單 CPU 適用)
-XX:ParallelGCThreads= 年輕代並行線程數
-XX:CMSInitiatingOccupancyFraction= 老年代佔用 % 觸發 CMS(默認 92%~68% 自適應)
-XX:+UseCMSCompactAtFullCollection Full GC 時壓縮老年代(消除碎片)
-XX:CMSFullGCsBeforeCompaction= 多少次 Full GC 後壓縮一次
UseCMSCompactAtFullCollection,設置 CMSFullGCsBeforeCompaction。-Xmx3800m -Xms3800m -Xmn2g -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGCCMS 標記-清除不壓縮 → 運行久產生碎片 → 分配大對象失敗 → 觸發串行 Full GC(停頓極長)。
解決:定期壓縮(上述參數)或改用 G1(天然複製整理)。