- Y축
- Garbage Collection 횟수를 의미합니다.
- Garbage Collection 이란 바로 "Stop-The-World"입니다.
- Stop-The-World 란, GC를 실행하기 위해 JVM이 어플리케이션 실행을 멈추는 것입니다.
- Stop-The-World 가 발생하면, GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈추게 됩니다.
- GC 작업을 완료한 이후에야, 이후에야 중단했던 작업을 다시 시작합니다.
- 어떠한 종류의 GC 알고리즘을 사용하더라도 Stop-The-World는 발생합니다.
- 따라서, Garbage Collection 횟수는 자바 어플리케이션의 운영상 성능 요건에 부합합니다.
- X축
- Y축
- Garbage Collection 실행 시간을 의미합니다.
- Java는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지 않는다.
- Java에서는 개발자가 프로그램 코드로 메모리를 명시적으로 해제하지 않기 때문에
- 가비지 컬렉터(Garbage Collector)가 더 이상 필요 없는(쓰레기) 객체를 찾아 지우는 작업을 한다.
- 대부분의 객체는 금방 접근 불가능한 상태(unreachable)가 된다.
- 오래된 객체에서 젊은 객체로의 참조는 아주 적게 존재한다.
- 따라서, Garbage Collection 실행 시간은 자바 어플리케이션이 멈추고 운용되지 않는 시간을 의미한다.
- X축
- Y축
- Java Memory를 HotSpot VM이라 칭합니다.
- HotSpot VM은 크게 2개로 물리적 공간을 나누었고, 이것이 Young 영역과 Old 영역이다.
- Young 영역(Young Generation 영역) : 새롭게 생성한 객체의 대부분이 여기에 위치한다. 이 영역에서 객체가 사라질때 Minor GC가 발생했다고 한다.
- Old 영역(Old Generation 영역) : 접근 불가능 상태로 되지 않아 Young 영역에서 살아남은 객체가 여기로 복사된다. 이 영역에서 객체가 사라질 때 Major GC(혹은 Full GC)가 발생한다고 한다.
- 아래 그림의 Permanent Generation 영역(이하 Perm 영역)은 Method Area라고도 한다.
- 객체나 억류(intern)된 문자열 정보를 저장하는 곳이며, Old 영역에서 살아남은 객체가 영원히 남아 있는 곳은 절대 아니다.
- 따라서 Perm 의 데이터는 Static, Class, Meta Data의 증가와 연계되어 있다.
- X축
- Y축
- TPS란 Transaction Per Second의 약자입니다.
- TPS는 그 시스템이 자신이 할 수 있는 한도내에서 초당 몇개를 해 낼 수 있느냐를 검사하는 것이다.
- TPS는 검사 시 Active User와 연관되어 있다.
- Active User의 수를 늘렸을때, 일반적으로 TPS는 선형적(Linear)하게 증가하게 된다.
- 하지만, 어느 시점에서는 TPS가 변동이 없을때가, 이 지점이 시스템의 최대 TPS가 되는 것이다.
- 이때 최고의 TPS를 나타내는 최초의 Active Client의 수를 Saturation Point(임계점) 이라고 한다.
- 또한 임계점을 중심으로 시스템이 할 수 있는 최대의 TPS의 직전단계를 Light-Load Zone이라고 한다.
- 이 구간에서의 평균 응답 시간은 일정하게 유지한다.
- X축