2011-02-04 2 views
1

며칠마다 연속 Full GC (1000Gill 이상)가 표시되고 응용 프로그램이 정상적으로 표시됩니다 ... 자세한 GC 로그는 다음과 같습니다. 전체 GC를하고 오래된 세대가 가득 차 있지는 않지만이 풀 Gc를 자극하는 것은 무엇입니까 ??Old Generation이 채워지지 않은 경우에도 Continuous Full GC가 표시됩니다.

환경/설정

JDK 1.6
메모리 설정 -Xms256m -Xmx2048m -XX :를 MaxPermSize = 512M, ID 25118를 처리 기다리십시오에 부착

... 디버거가 성공적으로 연결. 서버 컴파일러가 감지되었습니다. JVM 버전은 스레드 로컬 객체 할당을 사용하는 14.3-b01

입니다. 8 스레드 (들)

힙 구성과 병렬 GC :
MinHeapFreeRatio = 40
MaxHeapFreeRatio는 = 70
MaxHeapSize = 2147483648 (2048.0MB)
newSize와 = 2,686,976 (2.5625MB)
MaxNewSize = 17조5천9백21억8천6백4만4천4백15메가바이트
OldSize = 5,439,488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21,757,952 (20.75MB) 01,238,007 를 MaxPermSize = 536,870,912 (512.0MB)를 PermGen가 충전되어

404006.016: [GC [PSYoungGen: 242756K->10659K(249408K)] 609285K->378416K(825536K), 0.0244300 secs] [Times: user=0.09 sys=0.00, real=0.03 secs] 
404126.211: [GC [PSYoungGen: 239715K->11421K(250624K)] 607472K->379300K(826752K), 0.0314540 secs] [Times: user=0.08 sys=0.01, real=0.03 secs] 
404498.907: [GC [PSYoungGen: 241181K->15113K(250816K)] 609060K->383750K(826944K), 0.0567160 secs] [Times: user=0.11 sys=0.00, real=0.06 secs] 
404559.340: [GC [PSYoungGen: 81552K->9784K(250688K)] 450190K->378571K(826816K), 0.0255340 secs] [Times: user=0.08 sys=0.01, real=0.03 secs] 
404559.366: [Full GC (System) [PSYoungGen: 9784K->0K(250688K)] [PSOldGen: 368787K->225993K(576128K)] 378571K->225993K(826816K) [PSPermGen: 181648K->181648K(187968K)], 1.4180830 secs] [Times: user=1.42 sys=0.00, real=1.42 secs] 
404560.791: [GC [PSYoungGen: 1155K->64K(251072K)] 227148K->226057K(827200K), 0.0141730 secs] [Times: user=0.03 sys=0.02, real=0.01 secs] 
404560.806: [Full GC (System) [PSYoungGen: 64K->0K(251072K)] [PSOldGen: 225993K->202050K(576128K)] 226057K->202050K(827200K) [PSPermGen: 181648K->178996K(185216K)], 1.5066450 secs] [Times: user=1.50 sys=0.00, real=1.51 secs] 
404562.329: [GC [PSYoungGen: 1351K->272K(252032K)] 203401K->202322K(828160K), 0.0129750 secs] [Times: user=0.03 sys=0.01, real=0.01 secs] 
404562.342: [Full GC (System) [PSYoungGen: 272K->0K(252032K)] [PSOldGen: 202050K->202125K(576128K)] 202322K->202125K(828160K) [PSPermGen: 178996K->178996K(184512K)], 1.3184310 secs] [Times: user=1.32 sys=0.00, real=1.32 secs] 
404563.674: [GC [PSYoungGen: 1146K->128K(253312K)] 203271K->202253K(829440K), 0.0106520 secs] [Times: user=0.02 sys=0.01, real=0.01 secs] 
404563.685: [Full GC (System) [PSYoungGen: 128K->0K(253312K)] [PSOldGen: 202125K->202126K(576128K)] 202253K->202126K(829440K) [PSPermGen: 178997K->178997K(184000K)], 1.3197180 secs] [Times: user=1.32 sys=0.00, real=1.32 secs] 
404565.025: [GC [PSYoungGen: 1146K->64K(254976K)] 203272K->202190K(831104K), 0.0152030 secs] [Times: user=0.03 sys=0.01, real=0.01 secs] 
404565.041: [Full GC (System) [PSYoungGen: 64K->0K(254976K)] [PSOldGen: 202126K->202126K(576128K)] 202190K->202126K(831104K) [PSPermGen: 178997K->178997K(183296K)], 1.3072740 secs] [Times: user=1.31 sys=0.00, real=1.31 secs] 
404566.355: [GC [PSYoungGen: 1151K->160K(255360K)] 203278K->202286K(831488K), 0.0107640 secs] [Times: user=0.02 sys=0.02, real=0.01 secs] 
+0

언어 및 가비지 수집기와 같은 환경에 대한 세부 정보를 제공해주십시오. 이런 행동을 일으킬 수있는 많은 것들이 있지만, 당신의 상황에 따라 달라질 것입니다. – btilly

답변

3

[PSPermGen : 178997K-> 178997K (183296K)]

에로드 된 클래스에 대한 정보를 포함하는 공간이다

JVM을 사용하는 경우 -XX : + TraceClassLoading -XX : + TraceClassUnloading을 추가하여 -XX : MaxPermSize = 512M을 지정하여 PermGen의 크기를 늘릴 수는 있지만 크기가 커지는 이유를 확인하십시오. 512M의 설정은 드문 일이 아닙니다.

+0

이미 MaxPermSize가 512MB입니다. – Kumar225

관련 문제