java permGen内存不足错误tomcat- liferay服务器

时间:2014-08-11 12:11:29

标签: java tomcat jvm liferay

我正在使用liferay门户,在运行返回的服务器上部署portlet

java.lang.OutOfMemoryError: PermGen space

这个错误不是经常出现,liferay在tomcat上运行,我该如何解决这个特殊问题。

我尝试在系统变量中添加值为-Xms128m -Xmx256m的JAVA_OPTS,但我仍然一次又一次地得到相同的错误(java.lang.OutOfMemoryError:PermGen空间)。任何帮助将不胜感激。我也读过stackoverflow中的其他帖子,但它没有成功。

4 个答案:

答案 0 :(得分:3)

特别是自Liferay 6.2以来,将默认的Perm大小从256mb增加到512mb是很重要的。今天256mb还不足以支持Liferay和一些插件。

-XX:MaxPermSize=512m

答案 1 :(得分:2)

-Xms1024m -Xmx1024m的堆大小配置不是PermGen

-Xms1024m是最小堆大小 -Xmx1024m最大堆大小。

你必须使用

-XX:MaxPermSize=256m // now it is 256MB you can increase it

配置PermGen

编辑:

我正在添加此部分以解决您的评论。

什么是PermGen

  

永久代是特殊的,因为它拥有元数据   描述用户类(不属于Java的类)   语言)。这种元数据的示例是描述类的对象   和方法,它们存储在永久世代中。   具有大型代码库的应用程序可以快速填满这一部分   堆将导致java.lang.OutOfMemoryError:PermGen no   你的-Xmx有多高,以及你在机器上有多少内存。

答案 2 :(得分:1)

您需要增加tomcat中的PermGen空间。

使用以下Java选项:

  

-XX:MaxPermSize参数=256米

有关详细信息,请参阅this question。它看起来很相似。

答案 3 :(得分:0)

您应该尝试在Tomcat设置的“内存ARGS:”字段中添加以下行。

SELECT * from EMPLOYEE ORDER BY NAME ASC, SALARY DESC;

您可以在链接中看到。

Screenshot