2014-12-31 2 views
2
org.apache.catalina.core.StandardWrapperValve invoke 

SEVERE: Servlet.service() for servlet default threw exception 

java.lang.OutOfMemoryError: PermGen space 

응용 프로그램을 배포 할 때이 오류가 발생하며 서버가 15-20 분 후에 중단됩니다.PermGen 공간 메모리 누수

+0

배포 할 때 또는 컨텍스트를 _re_deploying/reloading 할 때? PermGen Space를 늘려 보셨습니까? – Mikaveli

+0

Netbeans는 재배치시 메모리 누수로 악명이 높습니다. –

+0

여러 번 재배포하면 PERMENT GENeration 할당 크기가 증가합니다. 특정 수의 배포 후에 Application Server를 다시 시작하기 만하면됩니다. http://stackoverflow.com/questions/318942/what-does-permgen-actually-stand-for –

답변

0

PermGen 오류가 생성되는 매우 구체적인 이유가있을 수 있습니다. 하지만 ..

당신이 원하는

-XX:MaxPermSize=256m 

또는 어떤 크기합니다 (JAVA_OPTS에)와 바람둥이 JVM에 더 많은 공간을 할당합니다.

톰캣 서버의 catalina.batPermGen 힙 크기를 증가시키는 것이다 http://www.mkyong.com/tomcat/tomcat-javalangoutofmemoryerror-permgen-space/

0

솔루션을 살펴 수행; 이것은 당신에게 호흡 공간을 줄 수 있지만, 결국 이것은 얼마 후에도 java.lang.OutOfMemoryError: PermGen 공간으로 돌아올 것입니다.

Follow these steps to increase the PermGen Heap size: 

1) Go to Tomcat installation directory i.e C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.14\bin in Windows. 

2) Add JAVA_OPTS in your catalina.bat 

set JAVA_OPTS="-Xms1024m -Xmx10246m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m" 

증가 PermGen 공간은 얼마 동안 바람둥이에 java.lang.OutOfMemoryError: PermGen을 방지 할 수 있고 결국 당신이 당신의 웹 응용 프로그램을 다시 배포하는 횟수에 따라 발생합니다, 최고의 바람둥이에서 메모리 누수의 원인이되는 잘못된 클래스를 찾을 수 있습니다 그것을 고쳐라.

0

메모리 누수가 발생하면 응용 프로그램에 영구 생성 누수가 있음을 알립니다. 이는 응용 프로그램 서버에서 응용 프로그램을 재배포 할 때 많은 양의 클래스를 남겨 둡니다. 이러한 오래된 클래스 정의는 JVM 영구 생성으로 끝나며 따라서 귀중한 메모리를 차지하므로 솔루션은 결코 증가하지 않습니다 Permgen 크기,이 "솔루션"은 시한 폭탄입니다.

또한 메모리 누수의 다른 유형의 경우와 마찬가지로

, 는 어떻게-할 마술 문제를 해결하기 위해 수행 할 수 목록을 고정 더 골든 도구 또는 이 없습니다. 가능한 많은 경우와 여러 가지 방법으로 해결할 수 있습니다.

Solving run-time OutOfMemoryError

행운을 빕니다 :

내가 Plumbr (official website)를 사용하는 것이 좋습니다 여기 당신이 그것을
를 해결하기 위해 매우 usefulguide을 가졌어요.

관련 문제