我正在使用liferay门户,在运行返回的服务器上部署portlet
java.lang.OutOfMemoryError: PermGen space
这个错误不是经常出现,liferay在tomcat上运行,我该如何解决这个特殊问题。
我尝试在系统变量中添加值为-Xms128m -Xmx256m的JAVA_OPTS,但我仍然一次又一次地得到相同的错误(java.lang.OutOfMemoryError:PermGen空间)。任何帮助将不胜感激。我也读过stackoverflow中的其他帖子,但它没有成功。
答案 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)
答案 3 :(得分:0)
您应该尝试在Tomcat设置的“内存ARGS:”字段中添加以下行。
SELECT * from EMPLOYEE ORDER BY NAME ASC, SALARY DESC;
您可以在链接中看到。