2012-09-05 2 views
0

Java EE 서버가 정상적으로 작동하고 10 분 안에 full gc가 자주 발생하기 시작합니다. 그런 다음 GC로 인해 항상 중지되었습니다. PSPermGen은 공개되지 않았습니다.전체 GC, PSPermGen이 지워지지 않았습니다.

내 JVM 설정은 다음과 같습니다

세트 JAVA_OPTS = % JAVA_OPTS % -Xms4g -Xmx4g -XX :를 MaxPermSize = 512m -XX : NewRatio = 3

2012-09-05T14 : 03 : 10.394 [PSPermGen : 181533K -> 181521K (186944K)], 10.9564398 (영문 일 수 있음) +0100 : 94287.753 : [Full GC [PSYoungGen : 843584K-> 0K (947200K)] [ParOldGen : 3077347K-> 3117145K (3145728K)] 3920931K-> 3117145K (4092928K) sec]] [시간 : 사용자 = 286.14 sys = 0.19, 실제 = 10.97 초] 응용 프로그램 스레드가 중지 된 총 시간 : 10.9678339 초 응용 프로그램 시간 : 0.0023102 초 총 시간 0.0088344 초 응용 프로그램 시간 : 0.3052301 초 응용 프로그램 스레드가 중단 된 총 시간 : 0.0085634 초 응용 프로그램 시간 : 0.1125068 초 2012-09-05T14 : 03 : 21.798 + 0100 : 94299.158 : [전체 GC [PSPngGen : 181521K -> 181521K (186752K)], 11.4649901 초] [시간 : 사용자 = 372.58 (PSP) : 372218K (41727K)] SYS = 0.11, 실제 = 11.47 초] 응용 프로그램 스레드가 중지 된있는 총 시간 : 11.4757898 초 응용 프로그램 시간 : 0.0706553 초 총 시간 응용 프로그램 스레드가 중지 된 경우 : 0.0102510 초 응용 프로그램 시간 : 0.3951514 초 2012-09- 05T14 : 03 : 33.748 + 0 [PSPermGen : 181521K -> 181521K (186112K)], 10.9699419 초 (PSPermGen : 181521K -> 181521K)> 1003 : 94311.110 : [Full GC [PSYoungGen : 843584K-> 34503K (947200K)] [ParOldGen : 3145232K-> 3141687K (3145728K)] 3988816K-> 3176190K (4092928K) ] [시간 : 사용자 = 369.43 SYS = 0.14, 실제 = 10.97 초] 응용 프로그램 스레드가 정지 된 대한 총 시간 : 10.9806713 초 응용 프로그램 시간 : 0.0027075 초

이유가 될 수있는 어떤 단서

? 메모리 누출 또는 JVM이 더 잘 조정될 수 있습니까?

답변

0

로그에서 확인하면 몇 가지 사항이 분명합니다. 시스템이 진정으로 너무 많은 메모리를 필요로하여 tenured 세대를 지울 수 없기 때문에 3.1GB의 일관된 소비가 발생합니다. 이 부분 만 대답 할 수 있습니다. 또는 메모리 누수가 있습니다. 사용 된 공간이 약 3.145GB로 일정하기 때문에 메모리 누수가 발생하거나 불가능할 수 있습니다. 보통 메모리 누수가 발생해도이 정도면 증가합니다. 아마도 로그가 더 도움이 될 수 있습니다. 이 요소가 시간이 지남에 따라 증가하면 안심하십시오 - 누출. 상수 인 경우 응용 프로그램에 필요한 메모리가 부족합니다.

관련 문제