Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OutOfMemory PermGen错误-获取此错误的方法_Java_Tomcat - Fatal编程技术网

Java OutOfMemory PermGen错误-获取此错误的方法

Java OutOfMemory PermGen错误-获取此错误的方法,java,tomcat,Java,Tomcat,是否有可能在tomcat服务器上以其他方式获得此错误,然后重新部署WAR或编辑jsp文件?我们在理论上不进行重新部署的服务器上遇到了这个错误。您知道从linux控制台监视PermGen的最佳解决方案吗?这不一定是因为在文件编辑过程中进行了重新部署或更多。 服务器上的Java应用程序更有可能耗尽所有分配的内存。 所以,是的,在tomcat服务器上可以通过其他方式获得此错误,然后重新部署WAR或编辑jsp文件 在监控方面,您可能会对以下API感兴趣: 或者通过在Google中键入tomcat mon

是否有可能在tomcat服务器上以其他方式获得此错误,然后重新部署WAR或编辑jsp文件?我们在理论上不进行重新部署的服务器上遇到了这个错误。您知道从linux控制台监视PermGen的最佳解决方案吗?

这不一定是因为在文件编辑过程中进行了重新部署或更多。 服务器上的Java应用程序更有可能耗尽所有分配的内存。 所以,是的,在tomcat服务器上可以通过其他方式获得此错误,然后重新部署WAR或编辑jsp文件

在监控方面,您可能会对以下API感兴趣:


或者通过在Google中键入
tomcat monitor permgen
来尝试寻找监控软件-返回大量结果。

这不一定是因为重新部署或更多文件编辑。 服务器上的Java应用程序更有可能耗尽所有分配的内存。 所以,是的,在tomcat服务器上可以通过其他方式获得此错误,然后重新部署WAR或编辑jsp文件

在监控方面,您可能会对以下API感兴趣:


或者通过在Google中键入
tomcat monitor permgen
来尝试寻找监控软件-返回了大量结果。

有一个远程监控VM的工具:

有一个远程监控VM的工具:

我记得tomcat上的默认permgen非常低,如果您有一个具有大量第三方依赖关系的相当大的应用程序,这可能会导致类的负载驻留在pergmen中。你可以合理地需要更多的pergmen空间,试着增加它。

我记得Tomcat上的默认permgen非常低,如果你有一个有很多第三方依赖关系的相当大的应用程序,这可能会导致类的负载驻留在pergmen中。你可以合理地需要更多的pergmen空间,试着增加它。

permGen意味着永久生成,这是所有常量像字符串一样存储的地方(在java 7之前的大多数情况下)存储在这个permGen上,消除它的一种方法是使用

-XX:PermSize=512m
这就是我所做的,但从您的场景来看,似乎存在某种内存泄漏,我不确定如何检测它,有一些框架可用于此,netbeans还提供应用程序分析支持

这里有一些好的链接


permGen意味着永久生成,在这个地方,所有常量都像字符串一样存储在这个permGen上(在java 7之前的大多数情况下),消除它的一种方法是使用

-XX:PermSize=512m
这就是我所做的,但从您的场景来看,似乎存在某种内存泄漏,我不确定如何检测它,有一些框架可用于此,netbeans还提供应用程序分析支持

这里有一些好的链接


jmap-heap[tomcat PID]
jmap-heap[tomcat PID]
是的,但是我们的应用程序运行了7天,在这7天之后,我们收到了这个错误。有趣的是,“top”命令显示32GB总内存,包括:5GB可用内存和12GB缓存内存。当您说“服务器上的Java应用程序正在使用所有分配的内存”时,您想到了Java内存设置或应用程序运行的服务器上的内存?这显然意味着您的Java应用程序使用了所有分配的空间。这是非常典型的错误。看看这里:这里是的,但是我们的应用程序运行了7天,在这7天之后,我们得到了这个错误。有趣的是,“top”命令显示32GB总内存,包括:5GB可用内存和12GB缓存内存。当您说“服务器上的Java应用程序正在使用所有分配的内存”时,您想到了Java内存设置或应用程序运行的服务器上的内存?这显然意味着您的Java应用程序使用了所有分配的空间。这是非常典型的错误。看看这里:这里是的,它包含在JDK(bin目录)中。是的,它包含在JDK(bin目录)中。