tomcat以及jboss的内存溢出解决方案
2012-02-08 10:25:41| 分类: excepience | 标签:jboss tomcat 内存溢出 |举报 |字号 订阅
修改Tomcat目录中bin目录下的catalina.bat文件,在开始处加入:
|
通过这句话来调整jvm的配置。下面具体介绍下参数的含义:
? -Xms 设置jvm初始化堆内存大小。 ? -Xmx 设置jvm最大的堆内存大小。 ? -XX:PermSize 设置非堆内存初始值。(默认是物理内存的1/64) ? -XX:MaxPermSize 设置最大非堆内存大小。(默认是物理内存的1/4) |
举个例子,如果服务器物理内存为4GB,那么默认的PermSize就是64MB,MaxPermSize就是1024MB。
我们经常遇到的内存溢出总的可以分为两种:
? 堆溢出 OutOfMemoryError:Heap space。
需要调整 –Xms和-Xmx的大小。
? 永久保存区域溢出 OutOfMemoryError:PermGen space。
需要调整permsize和MaxPermSize的大小。
我们可以通过Jconsole来监测目前的JVM参数设置。
2. Tomcat在eclipse上内存溢出
我们在catalina.bat中配置tomcat后,通过tomcat bin目录的startup.bat启动tomcat可以解决内存溢出,但是如果通过MyEclipse启动tomcat仍会出现内存溢出的问题,这个时候我们需要配置下Myeclipse。
打开window->preferences->tomcat->jdk。在Optional java VM arguments中设置JVM:
|
3. Tomcat在linux上内存溢出
|
4. jboss在linux上内存溢出
在jboss目录下的bin目录中找到run.conf文件,修改配置如下:
|
注意在fi中也加入配置(很重要)。如下:
具体看这篇文章:http://www-01.ibm.com/support/docview.wss?uid=swg21390229
2. JBOSS在eclipse上内存溢出
在 JVM 默认的情况下,该部分空间的大小只有 4M,在 jar 包非常多的情况下,显然是不够用的,所以通过 -XX:MaxPermSize=256m 指定最大值后即可解决问题。
-Xms128m -Xmx512m -XX:MaxPermSize=256m |