相关疑难解决方法(0)

处理"java.lang.OutOfMemoryError:PermGen space"错误

最近我在我的Web应用程序中遇到了这个错误:

java.lang.OutOfMemoryError:PermGen空间

这是在Tomcat 6和JDK 1.6上运行的典型Hibernate/JPA + IceFaces/JSF应用程序.显然,重新部署应用程序几次后就会发生这种情况.

导致它的原因以及可以采取哪些措施来避免它?我该如何解决这个问题?

memory-leaks exception out-of-memory permgen java-6

1215
推荐指数
17
解决办法
102万
查看次数

Spring PermGen空间问题

我一直有一个非常严重的生产问题,我希望有人可以提供帮助.

我正在使用Spring 3.1.0并且对它的功能印象深刻.

在开发过程中,一切都很好.不幸的是,在部署到生产时,我们遇到了一些问题.

我们正在使PermGen空间出现内存错误.

在我们的开发/测试框中,我们有以下设置:-Xms2048m -Xmx2048m -XX:PermSize = 512m -XX:MaxPermSize = 1024m(请注意我们不确定这些设置是否正确)

在我们的生产箱中,我们有以下设置:-Xms3056m -Xmx3056m -XX:PermSize = 128m -XX:MaxPermSize = 512m(再次请注意,我们不确定这些设置是否正确)

不可否认,生产环境完全不同,因为它上面运行的应用程序更多.

根据我在这里读到的,我们应该将max和min设置为相同的值,并将maxpermsize设置为其中任何一个的1/4.

我已经在许多地方(包括这里)读过,由于泄漏而重启服务器可能是不可避免的.有谁知道这是真的吗?

另外,有人知道Spring框架通常需要多少内存?部署应用程序后,我发现使用的内存量增加了大约345 MB.我知道在启动应用程序时需要实例化一些类,但这似乎很多.我有不正确的设置吗?我们目前只使用Spring JDBC.有没有办法将框架仅限于这些类?

我们的代码库相当大,我理解JAXB会导致严重的问题.

我见过使用的建议

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
Run Code Online (Sandbox Code Playgroud)

在这里这里.使用这些参数是否有任何可能的负面影响?

所以,总结一下:

  1. 我们的设置是否正确,如果没有,它们应该是什么?

  2. Spring框架不时会不时地重启服务器吗?

  3. Spring应该占用多少内存?有没有办法限制使用的类?

  4. 使用有任何可能的副作用-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled吗?

任何和所有的帮助将不胜感激.提前致谢.

堆栈跟踪在下面(还有更多,但我不能全部发布):

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter]: Constructor threw exception; nested …
Run Code Online (Sandbox Code Playgroud)

memory spring weblogic

6
推荐指数
1
解决办法
4456
查看次数