2015-01-15 8 views
0

응용 프로그램에서 우리는 Apache Server (for the front end only) & JBoss 4.2 (for the business/backend end) 두 가지를 모두 가지고 있습니다. 우리는 서버 OS로 Ubuntu 12을 사용하고 있습니다. 우리의 응용 프로그램은 java.lang.OutOfMemoryError: "Java heap space" 반복적으로 던지고있다. (그것은 한 시간 정도 OOMEs을 던져 후 2 ~ 3 시간 동안 정상적으로 작동으로 돌아 간다. 그런 다음 패턴을 반복합니다.) 우리의 자바 메모리 설정이java.lang.OutOfMemoryError : 2-3 시간마다 Java 힙 공간

-Xms512m -Xmx1024m 

우리의 서버가 물리적 램의 6기가바이트을 가지고 있습니다 . Java 힙 크기를 늘릴 필요가 있는지 안내하십시오. 그렇다면 실제 6GB RAM을 고려할 때 이상적인 크기 여야합니다.

+0

자주 배포하고 계십니까? 그렇지 않다면 애플리케이션의 메모리 누수를 분석 할 필요가 있습니다. – Mahendra

+0

표준 답장 : 먼저 프로파일 러를 사용하여 모든 메모리가 어디로 가고 있는지 알아보십시오. 행동하기 전에 측정하십시오. JVisualVM은 무료 예제입니다. – Gimby

답변

1

메모리 누수가 없습니까? 또한 당신이 PDF를위한 doc 또는 itext를위한 POI 같이 api를 사용하여 높은 기억을 사용하는 경우에 당신은 기억 발자국을 낮게 지키기 위하여 부호를 이용하고 있습니다. 프로파일 러를 사용하여 정확히 무슨 일이 일어나는지 볼 수 있습니다. 적절한 값이 될 때까지 단계적으로 증가를 늘려야합니다.

-Xms512m -Xmx1024m 
다음

-Xms512m -Xmx2048m 

같은

... 당신이 누출, 예를 들어 메모리가 있는지 여부를

1

내가 확인할 것 거기에는 건물이 생기고 해방되지 않는 것이있다.

예를 들어 프로필러로 할 수 있습니다. visualvm 또는 jmap -histo:live이면 충분할 수 있습니다.

메모리 누수가없고 메모리 사용이 유효한 경우 JVM에서 사용할 최대 메모리 (예 : 4GB)를 최대한 늘리려고 시도합니다.