美文网首页
JVM调优常用参数

JVM调优常用参数

作者: chenjiangtao | 来源:发表于2018-01-08 14:41 被阅读0次

    JVM调优常用参数

    内存调优

    **设置heap大小
    这个非常重要,通常只要这里设置够了,就不会出现溢出。
    ''-Xms4096m -Xmx4096m
    or
    ''-Xms4g -Xmx4g
    这两个值的大小应该一样,这样减少转换时初始化时间
    64位一般可支持的最大内存是多少?如果物理内存为32G(一般为物理内存的90%,也就是27~28G)
    新生代和老年代的大小
    这个参数相当于设置等值的最小、最大新生代,NewRatio这个设置新、老代比例,NewRatio=1代表,两个相等大小
    ''-Xmn1g
    这个值如果不设的话,默认只有6M
    **设置持久代大小
    同理,这两个值应该是一样的(jdk7)
    ''-XX:PermSize=512m -XX:MaxPermSize=512m
    JDK8起用这两个参数
    ''-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m

    **设置code cache
    ''-XX:ReservedCodeCacheSize=1024m -XX:+UseCompressedOops

    GC调优

    并发GC线程设置
    服务器总的线程数/jvm实例数就行了,如果一台服务器上有4个jvm。比如2颗6核超线程(超线程后1个核相当于2个线程)就是24/4=6调,置ParallelGCThreads时最大不要超过6就行了。
    Mac笔记本4核8线程,一个jvm,ParallelGCThreads=CPU 数量/JVM 数量
    ''-XX:ParallelGCThreads=8

    CMS基本配置

    配置了cms,-XX:+UseParNewGC这个参数就不用设了,因为设了cms这个就自动打开了
    ''-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly

    日志基本配置

    ''-Xloggc:/var/log/gc-sms.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails

    例子

    linkedin的一个例子如下
    // JVM sizing options
    ''-Xms40g -Xmx40g -XX:MaxDirectMemorySize=4096m -XX:PermSize=256m -XX:MaxPermSize=256m
    // Young generation options
    ''-XX:NewSize=6g -XX:MaxNewSize=6g -XX:+UseParNewGC -XX:MaxTenuringThreshold=2 -XX:SurvivorRatio=8 -XX:+UnlockDiagnosticVMOptions -XX:ParGCCardsPerStrideChunk=32768
    // Old generation options
    ''-XX:+UseConcMarkSweepGC -XX:CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly
    // Other options
    ''-XX:+AlwaysPreTouch -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -XX:-OmitStackTraceInFastThrow
    参考:[http://www.importnew.com/11336.html]

    我的常用配置
    -Xms14g
    -Xmx14g
    -Xmn5g
    -XX:MetaspaceSize=512m
    -XX:MaxMetaspaceSize=512m
    -XX:ReservedCodeCacheSize=1024m
    -XX:+UseCompressedOops
    -XX:+UseConcMarkSweepGC
    -XX:ParallelGCThreads=8
    -XX:CMSInitiatingOccupancyFraction=75
    -XX:+UseCMSInitiatingOccupancyOnly
    -Xloggc:/var/log/gc-sms.log
    -XX:+PrintGCDateStamps
    -XX:+PrintGCDetails


    相关文章

      网友评论

          本文标题:JVM调优常用参数

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