java.lang.OutOfMemoryError: PermGen space PermGen space java
由-XX:PermSize -XX:MaxPermSize 引發性能
java.lang.OutOfMemoryError: Java heap space Heap sizspa
由-Xms -Xmx 引發server
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"ci
Windows下修改:catalina.bat虛擬機
set JAVA_OPTS=%JAVA_OPTS% -server -Xms256m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=2048m it
echo Using CATALINA_BASE: "%CATALINA_BASE%"io
-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