jvm参数设置说明

1.堆

-Xms:xxm 最小

-Xmx:xxm 最大

-XX:+HeapDumpOnOutOfMemoryError  出现内存溢出情况转存快照

-Xmn:young

-XX:SurvivorRatio=8

-XX:InitialSurvivorRatio=8

-XX:+UseAdaptiveSizePolicy

-XX:MaxTenuringThreshold=20

 

 

2.栈

-Xss128k

 

3.方法区(永久代)

-XX:PermSize=xxm -XX:PermMaxSize=xxm

 

4.直接内存

-XX:MaxDirectMemorySize=xxm

默认与堆大小相同

 

5.hotspot堆

指针碰撞和空闲列表分配内存

句柄和直接指针定位对象

 

6.判断对象是否存活

引用计数和可达性分析GC Roots

 

7.垃圾收集算法

标记-清除

复制算法

标记-压缩

分代收集

 

 

8.收集器

serial:单线程 stop the world,新生代收集器,client效率高

parnew:多线程,其他与serial基本相同,与CMS配合使用,新生代收集器,server效率高

parallel scavenge:新生代,复制算法,可控吞吐量,自适应调节策略

serial old:标记-压缩,单线程client下;server下与parallel scavenge配合,作为CMS的后备

parallel old:parallel scavenge配合使用在吞吐量高CPU敏感场合

CMS:concurrent mark sweep,old generation

G1:Garbage-First

 

9.jvm选项

压缩指针:-XX:+UseCompressdOops

jit编译模式:-client -server

类数据共享:-Xshare:on/off

开启偏向锁:-XX:UseBiasedLocking

VM崩溃报告:-XX:+ShowMessageBoxOnError

-XX:OnOutOfMemoryErorr=<cmd>

-XX:HeapDumpOnOutOfMemory

-XX:HeapDump- Path=<dir>

混合编译:-server: -XX:+TieredCompilation

查看虚拟机自动优化参数: -XX: +PrintCommandLineFlags

java -XX:+PrintCommandLineFlags -version

加载的类:-XX:+TraceClassLoading

默认值:-XX: +PrintFlagsInitial

 

10.tomcat

  JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=128m"
  #Config GC
  JAVA_OPTS=$JAVA_OPTS" -XX:+UseConcMarkSweepGC"
  JAVA_OPTS=$JAVA_OPTS" -XX:CMSInitiatingOccupancyFraction=70"
  #add GC log
  JAVA_OPTS=$JAVA_OPTS" -Xloggc:$TOMCAT_HOME/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
  JAVA_OPTS=$JAVA_OPTS" -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime"
  JAVA_OPTS=$JAVA_OPTS" -XX:+HeapDumpOnOutOfMemoryError"
  JAVA_OPTS=$JAVA_OPTS" -XX:HeapDumpPath=$TOMCAT_HOME/logs/heapDump.log"
  JAVA_OPTS=$JAVA_OPTS" -Dcom.sun.management.jmxremote"
  JAVA_OPTS=$JAVA_OPTS" -Dcom.sun.management.jmxremote.port=10098"
  JAVA_OPTS=$JAVA_OPTS" -Dcom.sun.management.jmxremote.authenticate=false"
  JAVA_OPTS=$JAVA_OPTS" -Dcom.sun.management.jmxremote.ssl=false"
  JAVA_OPTS=$JAVA_OPTS" -Djava.rmi.server.hostname=10.4.3.197"

 

你可能感兴趣的:(jvm参数)