JVM 常用参数设置(针对 G1GC)

 ===========================================================

-XX 开头,这些是 JVM 的所有实现 都支持的 最常用的选项
===========================================================

bool类型的开关选项(+开启、-关闭)

-XX:+UseG1GC

  使用G1GC
-XX:+PreserveFramePointer  

  使用FP寄存器来保存帧指针,而不是作为通用寄存器。解决了stack不完整的问题
-XX:+PrintGC

  打印简单GC日志
-XX:+PrintGCDetails

  打印详细GC日志
-XX:+PrintGCDateStamps

  显示每次GC的日期时间
-XX:+UseGCLogFileRotation

  GC日志文件循环使用(比如,5个日志文件循环使用)
-XX:+HeapDumpOnOutOfMemoryError 

  可以让JVM在出现内存溢出时候Dump出当前的内存转储快照
-XX:-OmitStackTraceInFastThrow
  关闭栈异常信息快速抛出,从而记录详细的栈异常以便跟踪。

各种配置的键值
-XX:MetaspaceSize=128m
  元空间的初始大小,不断扩容并首次超过这个值时会进行FGC,JVM会动态调整这个值
-XX:MaxMetaspaceSize=256m
  元空间的最大值,超过最大值时会抛异常出来,加载的类越多,元空间使用的内存越多,元空间使用 Native Memory。
-XX:MaxGCPauseMillis=200
  最大GC暂停时间,用户可以设置这个值,G1GC尽量保证软实时性
-XX:ParallelGCThreads=4
  最大并行GC线程数
-XX:ConcGCThreads=4
  最大并发GC线程数
-XX:MinHeapFreeRatio=30
  指定空闲堆空间的最小百分比,如果实际空闲堆空间小于此值则需要对堆进行扩容 ,Xmx==Xms 的情况下无效
-XX:MaxHeapFreeRatio=50
  指定空闲堆空间最大百分比 ,如果实际空闲堆空间大于此值则需要对对堆空间进行缩容,Xmx==Xms 的情况下无效
-XX:CICompilerCount=3
-XX:NumberOfGCLogFiles=5
  GC日志文件数,可以设置循环使用
-XX:GCLogFileSize=32M
  每个GC日志文件的默认大小
-XX:HeapDumpPath=/opt/logs/appid
  堆转储快照文件保存的路径
 

===========================================================

-X 开头,这些选项是特定于 Java HotSpot 虚拟机通用选项
===========================================================
-Xmx6144m
  JVM 最大堆内存
-Xms3686m
  JVM 初始堆内存
-Xss256k
  设置属于每个线程的栈大小
-Xloggc:/opt/logs/appid/gc.log
  GC日志文件保存的路径
 

===========================================================

-D开头,设置系统属性值(属性名称=属性值)
===========================================================
-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Dport.http.server=8080
-Dport.shutdown.server=8081
-Ddocbase.server=/opt/app
-Dvdir.server=
-Djava.security.egd=file:/dev/./urandom
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.0.1
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8780
-Dcom.sun.management.jmxremote.rmi.port=8780
-Dcom.sun.management.jmxremote.local.only=false
-Djdk.tls.ephemeralDHKeySize=2048
-Dignore.endorsed.dirs=
-Dcatalina.base=/opt/tomcat
-Dcatalina.home=/opt/tomcat
-Djava.io.tmpdir=/opt/tomcat/temp
-Djava.util.concurrent.ForkJoinPool.common.parallelism=4

posted @ 2021-07-23 13:53  FrankYou  阅读(3954)  评论(0编辑  收藏  举报