• JVM·参数配置


    本文持续更新.....

    1、GC的输出日志:
        a. -verbose:gc,辅助输出一些详细的gc信息
        b. -XX:+PrintGCDetails,输出gc的详细信息
        c. -XX:PrintGCApplicationStoppedTime,输出gc造成应用造成应用程序暂停的时间
         d. -XX:PrintGCDataStamps,gc发生的时间信息
         e. -XX:PrintHeapAtGC,在gc前后输出堆中各个区域的大小
         f.  -Xloggc:[file],将gc信息输出到单独的日志文件


    2、Heap堆配置
        a. -Xms:堆初始大小
        b. -Xmx:堆最大值(考虑到实际情况,Xmx和Xms可以设置为一样,节省内存扩张和回缩的时间,但是也要考虑到服务器的内存大小是否能支持)
        c. -Xmn/Yong:新生代大小
        d. PermSize/Perm:永久代大小。在Java7及以后版本,没有Perm这个内存区,但在Java8以上版本中,使用“元空间(Metaspace)”来代替永久代。
        e. MaxPermSize/Perm:永久代最大大小。Java8以上设置可以,但是会提示“Java HotSopt 64bit Server VM warning:ignoring option MaxPermSize=xxxxm;support was removed in 8.0”
        f. -XX:SurvivorRatio:Eden:Survivor,新生代中新生区和幸存区的比值大小,例如:设置Yong区为10,设置-XX:SurvivorRatio=8,即设置Eden区为8,Survivor的s0和s1都为1,因为另个Survivor总有一个 Survivor为空

        -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
    

        打印辅助GC信息,堆初始大小20M,最大20M,新生代10M,打印GC详细信息,新生比为8:1。

    3、Stack栈设置

        a.-Xss:栈大小

        b.-Xoss:本地方法栈大小(如果虚拟机存在本地方法栈,才有意义。sun公司HotSpot不存在本地方法栈,这

    个参数有,但是设置了也没啥用)

    4、GC设置:

            -XX:+UseCMSCompactAtFullCollection   :开关参数,默认开启。在老年代内存不够时,或者零碎内存放不下大对象时,进行内存压缩。
            -XX:CMSFullGCsBeforeCompaction=5: 设置当进行5次不压缩的GC后,跟着来一次压缩的GC。
            -XX:MaxGCPauseMillis=m:m是一个大于0的毫秒数。即:收集器尽可能的保证内存回收花费的时间不超过设定值。
            -XX:GCTimeRatio=n:n是大于0小于100的整数。公式1/(1+n)为垃圾收集时间占总时间的百分比。即:如果n=9。那么1/(1+9)=10%。GC运行的时间占总时间的10%。
            -XX:+UseAdaptiveSizePolicy:这是一个开关参数,打开这个参数之后,就不需要手动指定新生代的大小(-Xmn),Eden和Survivor的比例(-XX:SurvivorRatio)、晋升老年代对象大小(-XX:PretenureSizeThreshold)等细节参数了,虚拟机会根据当前系统的运行情况收集性能监控信息,自动调整这些参数,以配合停顿时间或者吞吐量。
            -XX:PretenureSizeThreshold=m:大于m的对象将直接在老年代分配。例如:-XX:PretenureSizeThreshold=3145728,表示大于3M的对象将直接在老年代分配
            -XX:MaxTenuringThreshold=n:经过n次Minor GC(新生代gc)还存活的对象将进入老年代。默认n=15
            -XX:HandlePromotionFailure:开关参数 ,+/-决定是否开启。作用:进行MinorGC操作时会判断老年代剩余空间是否大于新生代所有对象大小之和。如果大于,则安全。如果小于,则不安全。开启参数,则表示允许不安全操作,可以在不安全的情况下进行MinorGC操作。关闭参数,表示不允许不安全的GC操作,在MinorGC同时要进行FullGC,腾出老年代空间。

    5、其他设置:

       -XX:+TraceClassLoading:开启后观察到操作中导致子类的加载。
           -XX:-UseCounterDecay:关闭热度衰减
           -XX:CounterHalfLifeTime=n:设置半衰周期时间=n秒
           -XX:-BackgroundCompilation:禁止后台编译,当达到编译条件后,线程会等待编译完成后继续执行。
           -XX:+PrintCompilation:发生即时编译时打印编译的方法名
           -XX:+HeapDumpOnOutOfMemoryError:JVM遇到OOM异常时能输出堆内信息,特别是对相隔数月才出现的OOM异常尤为重要。
    -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。
    
    凡你能说的,你说清楚。凡你不能说的,留给沉默!
  • 相关阅读:
    字符串系列复习
    点分治总结
    LCT总结
    网络流总结
    centOS7下安装GUI图形界面
    周记 2014.10.8
    周记 2014.9.28
    周记 2014.9.20
    tar命令
    [转]bit与byte
  • 原文地址:https://www.cnblogs.com/dhcao/p/10428575.html
Copyright © 2020-2023  润新知