2012-06-15 3 views
2

내 응용 프로그램의 CMS 수집기로 전환했으며 응용 프로그램 처리량이 절반으로 줄어 들었습니다. GC 로그에서 사소한 GC가 발생하는 빈도가 높은 것을 볼 수 있습니다 (10 per second). 힙 크기를 4G으로 할당했습니다. 기본값 인 JVM은 젊은 세대를 위해 매우 작은 크기 (40MB 미만)를 사용합니다. 나는 젊은 세대의 크기를 늘려서 CMS를 시험해보고 싶다. 당신이 나를 위해 바로 JVM 매개 변수를 가리킬 수 있습니다.NewRatio 매개 변수가 CMS 가비지 수집기와 작동하지 않습니다.

  • 나는 -XX 시도 : NewRatio하지만 JVM이 매개 변수를 무시하고 젊은 세대의 변화는
  • 내 자바 버전이 -XX:NewRatio을 설정하고 는가 java version "1.6.0_14"
+0

사용중인 Java 버전은 무엇입니까? 자바 6 udpate 33을 사용해 볼 수 있습니까? –

답변

4

입니다 크기가 없었다되는 JVM에 번역?

어쨌든. 기능이있는 -XX:MaxNewSize=size도 설정하거나 -XX:+UseConcMarkSweepGCknown bug 인 경우 무시할 수 있습니다.

+0

감사합니다. 이것은 정확하게 그랬다. 나는'-XX : + UseConcMarkSweepGC'와'-XX : NewRatio'를'java version 1.6.0_14 ''에서 함께 사용하고있었습니다. 내 JVM을 업그레이 드하고 이것을 시도 할 것 같아요. – ManojGumber

1

그것은 나를 위해 작동 :

기본값 (Windows의 자바 7 64 비트) :

 
java -Xmx4g -Xms4g -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -version 
java version "1.7.0_07" 
Java(TM) SE Runtime Environment (build 1.7.0_07-b10) 
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode) 
Heap 
par new generation total 613440K, used 21813K 
    eden space 545344K, 4% used 
    from space 68096K, 0% used 
    to space 68096K, 0% used 
concurrent mark-sweep generation total 3512768K, used 0K 
concurrent-mark-sweep perm gen total 21248K, used 2084K 

지금 비율 매개 변수를 지정 (대략 같은 결과) :

 
java -Xmx4g -Xms4g -XX:+PrintGCDetails -XX:NewRatio=6 -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -version 
par new generation total 539264K, used 19174K 
    eden space 479360K, 4% used 
    from space 59904K, 0% used 
    to space 59904K, 0% used 
concurrent mark-sweep generation total 3595136K, used 0K 
concurrent-mark-sweep perm gen total 21248K, used 2084K 

그리고 전혀 다른 새로운/이전 및 에덴/생존자 비율 :

 
java -Xmx4g -Xms4g -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -version 
par new generation total 1398144K, used 27965K 
    eden space 699136K, 4% used 
    from space 699008K, 0% used 
    to space 699008K, 0% used 
concurrent mark-sweep generation total 2097152K, used 0K 
concurrent-mark-sweep perm gen total 21248K, used 2084K 

동일한 것은 Java 6 또는 클라이언트 VM (기본값이 다른 경우)에서 작동합니다.