在达到Max之前,PermGen空间不足

我使用JPA / Hibernate在Tomcat上运行Java Web应用程序,并经常发生'PermGen空间不足'。

任何人都可以解释这个图形内存配置

堆内存:我运行到最大限度,但仍有一些空间(最大值为2.147.483.648,但使用了1.667.155.688)

在这里输入图像描述

非堆内存:大小下降(94.568.448),而最大允许5倍以上。 这是'PermGen空间不足'之前的快照(当Size = Used时)

在这里输入图像描述

我不明白这个配置文件。 还剩下很多物理内存。


这是Tomcat经典问题之一。 其中一个最好的答案在这里:

https://stackoverflow.com/a/10392385/1314276


这个问题通常与一些内存泄漏有关。 PermGen或永久生成是堆中的一部分,例如String对象和Class定义被分配。 当您在堆和/或物理内存上留有空间时,您可以轻松地使用PermGen。

你可以增加烫发代码的大小,但在大多数情况下,它只会延长问题,因为你只需要花一些时间。

我们需要查看导致此错误的代码,因为我们无法帮助您基于某些图形。 如果您不了解内存管理如何在java:Jvm性能增强,Java垃圾收集器中工作,这些链接可能会对您有所帮助


Perm gen空间不与Heap相交。 您应该使用-XX:PermSize和-XX:MaxPermSize参数。

链接地址: http://www.djcxy.com/p/54995.html

上一篇: PermGen out of space before Max is reached

下一篇: Explanation for this behaviour of Permgen space