튜닝은 젊은 세대와 나이 노트

젊은 세대와 노년 조정 (마감 노트)

몇 가지 일반적인 명사

세대 영 (영 지역)
(에덴와 생존자 영역을 포함) 젊은 세대 공간에서 마이너 GC가 메모리 확보라고
공간들이 이전 지역으로 직접 이어질 수 있습니다 너무 작습니다. 오래 된 지구의가 가득 찬 경우, 전체 GC를 트리거합니다. 그러나 너무 큰, 너무 총회는 복구 응용 프로그램을 차단의 결과로, 너무 오래 걸리는 원인이되었다.

세 (오래된 지구)
주요 GC의 호출 이전 GC에서
공간은 자주 전체 GC의 원인이 큰 개체에 맞지 않는, 오래 된 지구의 작은 조각을 생산할 예정 너무 작습니다. 캐시가 무한정 증가하지 않아야 동안 캐시 경우, 옛 지역은 제대로 더해야합니다.

서바이벌 존 (생존자)
생존자의 존재 이유가함으로써 전체 GC의 발생을 감소 나이에 전송 된 개체를 줄이는 것입니다.

에덴 (에덴)
힙 메모리에 걸쳐 (힙) 오래된 + 젊은 =

GC (가비지 수집)

힙 영역이 개 생존자 영역을 가지고, 새로운 개체가 에덴에서 살아남을 것입니다. 충분한 공간이없는 경우 에덴 지구는 젊은 GC 영역을 이끌 것입니다.

첫 번째 블록에서 MinorGC, 에덴 라이브 오브젝트를 경험 한 후 생존자 공간 S0로 이동합니다, 에덴이 시간에 클리어;

에덴 다른 영역 다음 마이너 GC 에덴 및 S0 발생하게 다시 충전 라이브 객체 공간 S1을 생존자 것 제 2 블록에 카피된다 에덴 케이스 (A)에서 비워 내고 S0, S1 및 S0되고 스왑 역할.
공간 경험의 부족 또는 생존자 경우 마이너 GC는 객체의 새로운 세대에서 살아남을 수있는 16 시간 보장 메커니즘을 할당하여 이전 연도로 전송됩니다.

의 이전 시대로 직접 들어갈 수없는 보장 된 생존자 객체를 할당에 대한 책임을 보자. 나머지 공간은 객체 전송의 크기, 직접 미만이면 FullGc

 

나이 객체를 입력

  • 직접 이전 해에 대형 오브젝트 (자주 사본을 피하기 위해)
  • 개체에 대한 참조 유지하는 장기 프로그램에서 (대상 연령은 지정된 임계 값은 세 입력됩니다 도달)
  • 생존자 영역이 너무 작 만 이전 연도를 입력 할 수 있습니다

FullGC

실행 마이너 GC (젊은 세대의 GC) 시간, JVM은 이전 시대의 가장 큰 연속 여유 공간 객체의 현재의 모든 새로운 세대의 전체 크기보다 큰 경우 확인합니다
그렇다면, (이 시간이 실행될 때 직접 마이너 GC (젊은 세대의 GC)를 실행하는 경우 위험이)
JVM이 집행 전체 GC에 직접 열 수없는 경우, 열린 공간 할당 보장 메커니즘 여부를 확인,보다 적은 없다
보증 메커니즘이 설정되어있는 경우, JVM은의 오래된 가장 큰 연속 여유 공간이 이전에 이전 행사보다 큰 여부를 확인합니다 평균 시대의 크기, 대신 전체 GC가 실행 미만 수행
전체 GC 경우 마이너 GC (젊은 세대의 GC)가 실행됩니다 실패 할 경우 마이너 GC (젊은 세대의 GC)을 실행됩니다보다 더 많은

적어도 마이너 GC 중 하나지만, 절대하지 동반 전체 GC가 자주 발생합니다. 주요 GC 10 배 이상 마이너 GC의 속도보다 일반적으로 느린

 

메모리 오버 플로우

단지 공간 현상의 오래된의 부족은 새로운 세대에 객체와 큰 개체, 큰 배열을 생성하는 경우에만 나타납니다. 공간 전체 GC의 구현 후 여전히 불충분 할 때, 다음과 같은 오류가 발생합니다 :
java.lang.OutOfMemoryError와를 : Java 힙 공간을

 

그 이유 자주 전체 GC

  • 개체 참조는 장기를 발표하지
  • 생존자 영역이 너무 작습니다
  • 오래된 영역이 너무 작습니다

전체 GC 튜닝 방법
1 : 다의 새로운 세대의 객체가 얼마 동안 생존 개체의 너무 큰 배열을 생성하지 않도록 객체가 마이너 GC 단계에서 복구하자

2 : 바로 이전 시대에 큰 개체로 가능한 한 많은 작은 물체의 젊은 세대. 젊은 세대 알고리즘이 복구 된 메모리를 복사 할 마커를 사용하기 때문에, 빠른

3:Eden区如果没有足够的空间时会引发一次young区的GC,通过-XX:SurvivorRatio 进行调整 Eden 和 Survivor 比例大小。少量对象的存活,适合复制算法(年轻代),大量对象存活,适合标记清理或者标记压缩(年老代)。

 

调优建议

  • (单服务器单应用)最大堆的设置建议在物理内存的1/2 到 2/3 之间
  • survivor和伊甸园的最优比例为1:8。年轻代=eden+2survivor
  • 年轻代和老年代的最优比例为1:2。

 

 

추천

출처www.cnblogs.com/Zfc-Cjk/p/11534654.html