zoukankan      html  css  js  c++  java
  • JAVA8 JVM调优配置参数说明

      Linux操作系统下内存4G,配置JAVA8 JVM:

    -server 
    -Xms2G 
    -Xmx2G 
    -Xmn256m 
    -XX:MetaspaceSize=512M 
    -XX:MaxMetaspaceSize=512M 
    -Xss256k 
    -XX:+UseConcMarkSweepGC 
    -XX:+UseParNewGC 
    -XX:+CMSClassUnloadingEnabled 
    -XX:+HeapDumpOnOutOfMemoryError 
    -verbose:gc 
    -XX:+PrintGCDetails 
    -XX:+PrintGCTimeStamps 
    -XX:+PrintGCDateStamps 
    -Xloggc:/appl/gc.log 
    -XX:CMSInitiatingOccupancyFraction=75 
    -XX:+UseCMSInitiatingOccupancyOnly

    参数含义说明:

    • -server:设置JVM使用server模式,server模式启动慢,运行性能和内存效率高,适用于生产服务器;相对应的有-client模式,client模式启动速度快,运行性能和内存效率不高,适用于应用开发和调试
    • -Xms2G:设置JVM初始分配的堆内存,默认值为物理内存的1/64,建议修改为与-Xmx一致
    • -Xmx2G:设置JVM最大允许使用的堆内存,默认值为物理内存的1/4,建议修改为物理内存的2/3-1/4。
    • -Xmn256m:设置JVM年轻代的大小,建议不要太大,过大可能会导致YGC时间过长,影响吞吐量
    • -Xss256k:设置JVM中每个JAVA线程堆栈的大小,一般默认512~1024kb,建议值设置在默认范围内
    • -XX:MetaspaceSize=512M:设置JVM初始元空间大小,JAVA8以上才有该字段。当达到该值将触发垃圾收集进行类型卸载。同时,如果释放了大量的空间,GC将适当降低该值;如果释放了很少的空间,GC则会在不超过MaxMetaspaceSize时,适当提高该值。由于GC每次调整元空间的代价很昂贵,因此建议该值与MaxMetaspaceSize一致
    • -XX:MaxMetaspaceSize=512M:设置JVM初始元空间最大值
    • -XX:+UseParNewGC:设置JVM开启并发串行垃圾收集器,该收集器与CMS收集器配合工作。相对应的还有:UseParallelGC并行垃圾收集器,该收集器最大化的提高程序吞吐量,同时缩短程序停顿时间,但不与CMS收集器配合工作
    • -XX:+UseConcMarkSweepGC:设置JVM开启并发标记清除收集器,即开启CMS收集器,一般和 XX:+UseParNewGC 一起设置使用
    • -XX:+CMSClassUnloadingEnabled:设置JVM中CMS收集器对元空间(永久代)进行回收
    • -XX:+HeapDumpOnOutOfMemoryError:设置JVM发生OOM时,自动生成DUMP文件。
    • -XX:HeapDumpPath=./java_heapdump.hprof:设置JVM生成DUMP文件的路径,也可以指定文件名称,例如:-XX:HeapDumpPath=./java_heapdump.hprof,如果不指定文件名,默认为:java_<pid><date><time>_heapDump.hprof。
    • -verbose:gc:设置JVM输出GC日志 , -XX:+PrintGC 与 -verbose:gc 是一样的,可以认为-verbose:gc 是 -XX:+PrintGC的别名.
    • -XX:+PrintGCDetails:设置JVM打印GC详细信息
    • -XX:+PrintGCTimeStamps:设置JVM打印gc时间戳(以基准时间的形式)
    • -XX:+PrintGCDateStamps:设置JVM打印GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
    • -Xloggc:/appl/gc.log:设置JVM打印GC日志目录
    • -XX:CMSInitiatingOccupancyFraction=75:设置CMS收集器在对内存占用率达到75%的时候开始GC(因为CMS会有浮动垃圾,所以一般都较早启动GC);
    • -XX:+UseCMSInitiatingOccupancyOnly:设置CMS收集器只使用设定的回收阈值(上面指定的75%),如果不指定,JVM仅在第一次使用设定值,后续则自动调整
  • 相关阅读:
    这样的面试题你会吗
    5个强盗分100颗宝石 你该怎么分?
    《Java程序员全攻略:从小工到专家》连载十四:先挣的是资本,后挣的是钱
    不是三维——软件项目的设计、开发与管理
    《Java程序员职场全攻略:从小工到专家》连载十三:给自己估个好价
    程序开发心理学
    电子工业出版社博文视点图书在微软VS2010全球发布会上受追捧
    博文视点大讲堂25期——2天玩转单反相机
    《Java程序员职场全攻略:从小工到专家》连载十五:我们不是爱加班
    管理小品(1)
  • 原文地址:https://www.cnblogs.com/lovelyli/p/14955585.html
Copyright © 2011-2022 走看看