enen0 2017-09-25
http://blog.csdn.net/shiyong1949/article/details/52536689
问题:
maven项目在pom.xml配置tomcat插件后启动,运行时报内存溢出。
tomcat插件配置如下:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>${tomcat.version}</version>
<configuration>
<port>${webserver.port}</port>
<path>/${project.artifactId}</path>
<uriEncoding>${project.build.sourceEncoding}</uriEncoding>
</configuration>
</plugin>
1
2
3
4
5
6
7
8
9
10
错误如下:
java.lang.OutOfMemoryError:PermGenspace
原因:
java虚拟机装载类的空间不够,永久内存超出,主要是因为项目功能增加后,加载的jar或class过多造成的。
解决方案:
增加jvm内存,在maven的runconfiguration中增加如下配置,扩大初始化内存。
-Xms1024M-Xmx2048M-XX:PermSize=256M-XX:MaxNewSize=256M-XX:MaxPermSize=512M
GCRoot 无法追踪到此对象,导致此对象无法被回收。默认的jvm 运行参数 -Xms 。因此给jvm分配的内存比较小。结果就是,运行了几分钟,用top命令查看,java 的 cpu使用率为 99%。