jdk8内存参数解析与修改

JDK内存

jdk内存实际是jvm内存,jvm有一个运行时数据区,其实就是对这一部分的大小分配。

运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)

  • Xss:每个线程的stack大小(栈)
  • Xmx:JAVA HEAP的最大值、默认为物理内存的1/4
  • Xms:JAVA HEAP的初始值,server端最好Xms与Xmx一样
  • Xmn:JAVA HEAP young区的大小
  • XX:PermSize:设定内存的永久保存区域
  • XX:MaxPermSize:设定最大内存的永久保存区域

 在JDK1.8中,取消了PermGen,取而代之的是Metaspace,所以PermSize和MaxPermSize参数失效,取而代之的是

-XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m

修改JDK内存

linux下:在tomcat的bin目录下编辑catalina.sh

cygwin=false上面加入

JAVA_OPTS="-Xms1024m -Xmx2048m -Xss1024K  -XX:MetaspaceSize=512m   
-XX:MaxMetaspaceSize1024m"

参考:

JVM介绍

JVM的内存区域划分

Java内存区域与内存溢出

猜你喜欢

转载自my.oschina.net/anlve/blog/1628021
今日推荐