-Xms4096M -Xmx4096M 如果8G内存的机器,一般分配一半4G给JVM,因为机器其他进程也需要内存 -Xmn3072M -Xss1M 给新生代分配3G,栈内存分配1M -XX:PermSize=256M -XX:MaxPermSize=256M 永久代分配256M,默认只有几十M,建议手动设置 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC 采用Pn+CMS垃圾回收器组合 -XX:CMSInitiatingOccupancyFraction=92 老年代占用达到92%触发CMS -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 每次Full GC就进行一次碎片压缩 -XX:+CMSParallelInitialMarkEnabled 开启"初始标记"的多线程并发执行,减少"初始标记"阶段STW的时间 -XX:+CMSScavengeBeforeRemark 在CMS"重新标记"之前执行一次Young GC,因为"重新标记"会STW,提前回收一些对象,减少STW的时间 -XX:+DisableExplicitGC 禁止显式进行垃圾回收,如:System.gc(); -XX:+HeapDumpOnOutOfMemoryError 在发生OOM的时候dump堆内存快照 -XX:+HeapDumpPath=/usr/local/app/oom 设置dump文件的路径 -XX:+PrintGCDetails -Xloggc:gc.log 打印GC日志