.

区分JVM虚拟机选项:Xms Xmx PermSize MaxPermSize

JVM限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制

JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;

举例说明:

-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配

在设置内存的时候,通常设置-xms   -xmx 的值 大小  一致,以避免每次垃圾回收完成后JVM重新分配内存

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉

 

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。

-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配

通常设置的时候 只设置最大内存:-XX:MaxPermSize=256MB    过小会导致:java.lang.OutOfMemoryError: PermGen space

 

一般内存设置建议不更改weblogic环境变量,自己写启动脚本,方便按需分配每个server内存。