常见JVM参数配置和说明
JVM有许多参数可以用于调整其行为。以下是一些常用的JVM参数:
-Xmx:设置JVM的最大堆大小。例如,-Xmx2g表示JVM的最大堆大小为2GB。
-Xms:设置JVM的初始堆大小。例如,-Xms1g表示JVM的初始堆大小为1GB。
-XX:+UseG1GC:启用G1垃圾收集器。G1垃圾收集器是一种基于区域的垃圾收集器,可以提高垃圾收集的效率,MaxTenuringThreshold15。
-XX:+UseConcMarkSweepGC:启用CMS垃圾收集器。CMS垃圾收集器是一种基于标记-清除算法的垃圾收集器,可以在不停止应用程序的情况下进行垃圾收集,其中MaxTenuringThreshold默认参数是6。
-XX:+UseParallelGC:启用并行垃圾收集器。并行垃圾收集器可以使用多个线程进行垃圾收集,从而提高垃圾收集的效率。(-XX:ParallelGCThreads 设置年轻代并行收集器的线程数。一般地,最好与CPU数量相等,以避免过多的线程数影响垃圾收集性能。)
-XX:+UseSerialGC:启用串行垃圾收集器。串行垃圾收集器只使用一个线程进行垃圾收集,适用于小型应用程序。
-XX:+TieredCompilation:启用JIT编译器。JIT编译器可以将Java字节码转换为机器码,并缓存已编译的代码以提高性能。
-XX:MaxPermSize:设置永久代的最大大小。例如,-XX:MaxPermSize=256m表示永久代的最大大小为256MB。
-XX:MaxMetaspaceSize:设置元空间的最大大小。例如,-XX:MaxMetaspaceSize=256m表示元空间的最大大小为256
-XX:NewSize=:设置新生代的初始大小。
-XX:MaxNewSize=:设置新生代的最大大小。
-XX:SurvivorRatio=:设置Eden区与Survivor区的比例。
-XX:MaxTenuringThreshold=:设置对象进入老年代的年龄阈值。
-XX:PermSize=:设置永久代的初始大小。
-XX:MaxPermSize=:设置永久代的最大
example:
-Xms2048m
-Xmx4096m
-XX:+UseStringDeduplication
-XX:+UnlockExperimentalVMOptions
-XX:G1MixedGCLiveThresholdPercent=90
-XX:NewRatio=3
-XX:MaxTenuringThreshold=15
-XX:+UseG1GC
-XX:InitiatingHeapOccupancyPercent=20
-XX:+PrintGCDetails
-Xloggc:log/gc-%t.log