最近在tomcat使用中,当在一个tomcat中同时部署多个项目时,会出现java.lang.OutOfMemoryError:Java Permanent Space异常,通过查找,发现时由于项目jar使用很多,又同时部署多个工程,加载至永代区的Class太多,导致永代区已满,通过网上查找,windows底下配置tomcat的JVM方式入下:
一、myeclipse中配置JVM
打开Myeclipse,选择Window->Preferences->tomcat,在JDK选项中输入如下参数,具体大小根据实际情况配置:
-XX:PermSize=64M -XX:MaxPermSize=128m,如下图所示:
重启Myeclipse,再次启动tomcat。进入CMD命令行窗口,发现永代区的大小正如所配置的一样发生了变化:
二、直接配置tomcat的JVM
在Myeclipse中配置的tomcat的JVM参数,不能再单独启动tomcat中生效,要不通过Myeclipse而单独启动tomcat时JVM配置生效,需要修改tomcat配置文件:
在该配置文件中添加如下配置,具体大小根据实际情况配置:
set JAVA_OPTS=-server -XX:PermSize=128M -XX:MaxPermSize=256M
如下图所示:
重新启动tomcat,发现配置如下,已经发生了改变:
linux下配置tomcat的JVM,在tomcat的catalina.sh中加入参数:
JAVA_OPTS="-XX:PermSize=128m -XX:MaxPermSize=512m":
参数配置后,重启tomato,可以看到配置已经生效,永代区已经扩大: