美文网首页
JVM调优参数介绍

JVM调优参数介绍

作者: 耳威巴帝 | 来源:发表于2020-05-27 14:38 被阅读0次

    是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢
    -Xms7168m

    是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常
    -Xmx7168m

    设置年轻代大小。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
    -Xmn2389m

    设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6
    -XX:SurvivorRatio=4

    设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
    -XX:GCTimeRatio=19

    设置并行收集器收集时使用的CPU数。并行收集线程数
    -XX:ParallelGCThreads=10

    这个参数作用是禁止代码中显示调用GC。代码如何显示调用GC呢,通过System.gc()函数调用。如果加上了这个JVM启动参数,那么代码中调用System.gc()没有任何效果,相当于是没有这行代码一样
    -XX:+DisableExplicitGC

    这个是原始类型的JAVA自带的快速优化
    -XX:+UseFastAccessorMethods

    用于设置metaspace区域的最大值,这个值可以通过mxbean中的MemoryPoolBean获取到,如果这个参数没有设置,那么就是通过mxbean拿到的最大值是-1,表示无穷大
    -XX:MaxMetaspaceSize=4096m

    Metaspace扩容时触发FullGC的初始化阈值,也是最小的阈值,如果没有配置,触发FGC的阈值是21807104(约20.8m)
    GC收集器会在发生对metaspace的回收会,会计算新的_capacity_until_GC值,以后发生FGC就跟MetaspaceSize没有关系了
    -XX:MetaspaceSize=512m

    关闭虚拟机对class的垃圾回收功能
    -Xnoclassgc

    并行处理Reference,加快处理速度,缩短耗时,默认false
    -XX:+ParallelRefProcEnabled

    设置年老代为并发收集,使用CMS内存收集
    -XX:+UseConcMarkSweepGC

    设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值
    -XX:+UseParNewGC

    降低标记停顿
    -XX:+CMSParallelRemarkEnabled

    使用手动定义初始化定义开始CMS收集
    -XX:+UseCMSInitiatingOccupancyOnly

    使用cms作为垃圾回收,使用70%后开始CMS收集
    -XX:CMSInitiatingOccupancyFraction=70

    启用CMSClassUnloadingEnabled,GC也会扫描PermGen,并删除不再使用的类
    -XX:+CMSClassUnloadingEnabled

    针对SoftRefLRUPolicyMSPerMB的生产问题https://blog.csdn.net/qiang_zi_/article/details/100700784
    反射过程中JVM自动创建的软引用的一些类的Class对象的回收时间,0代表每次FGC都会回收
    -XX:SoftRefLRUPolicyMSPerMB=0

    输出简要GC日志
    -XX:+PrintGC

    开启记录GC日志
    -XX:+UseGCLogFileRotation

    GC日志最大有5个日志
    -XX:NumberOfGCLogFiles=5

    每个日志256M
    -XX:GCLogFileSize=256M

    打印GC详细日志信息
    -XX:+PrintGCDetails

    GC 日志的前面加上一个时间戳。这个时间戳表示 JVM 启动后到现在所逝去的时间
    -XX:+PrintGCTimeStamps

    打印GC前后的详细堆栈信息
    -XX:+PrintHeapAtGC

    可以打印出类的加载顺序,可以用来排查 class 的冲突问题
    -XX:TraceClassLoading

    可以打印出类的卸载顺序,可以用来排查 class 的冲突问题
    -XX:TraceClassUnloading

    相关文章

      网友评论

          本文标题:JVM调优参数介绍

          本文链接:https://www.haomeiwen.com/subject/wnuwahtx.html