Tomcat内存溢出的三种类型:
1.OutOfMemoryError: Java heap space --堆溢出
2.OutOfMemoryError: PermGen space --永久保存区域溢出
3.OutOfMemoryError: unable to create new native thread --无法创建新的线程(不是在JVM中创建,实际上是在
操作系统中创建)。
解决办法:
1. 设置 Xms 和 Xmx , 一般设置成一样比较好。如:set JAVA_OPTS= -Xms1024m -Xmx1024m
2. 设置 -XX:PermSize,初始大小和最大值。如: set JAVA_OPTS= -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:PermSize=256M
3. 一般采用增大系统内存的方式,或者减小JVM内存的方法,让操作系统可以创建更多的线程。
Linux下设置catalina.sh:
加入:
JAVA_OPTS="-Xms1024m -Xmx2048m -Xss1024K -XX:PermSize=1024m -XX:MaxPermSize=2048m"
(cygwin=false 前即可)