java.lang.OutOfMemoryError: PermGen space PermGen space & java.lang.OutOfMemoryError: Java heap space Heap siz
java.lang.OutOfMemoryError: PermGen space PermGen space
由-XX:PermSize -XX:MaxPermSize 引起
java.lang.OutOfMemoryError: Java heap space Heap siz
由-Xms -Xmx 引起
Liunx下修改:catalina.sh
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS="-server -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=2048m"
Windows下修改:catalina.bat
set JAVA_OPTS=%JAVA_OPTS% -server -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=2048m
echo Using CATALINA_BASE: "%CATALINA_BASE%"
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。表示JVM Heap(堆内存)最小尺寸
-Xmx:java heap最大值,使用的最大内存。表示JVM Heap(堆内存)最大允许的尺寸
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m