SpringBoot
Java OOM 발생 시퀀스
ByteBridge
2023. 10. 29. 13:35
반응형

자바에서 힙 메모리에 객체를 할당할 때 메모리가 부족한 상황과 그에 따른 가비지 컬렉터의 역할을 UML 시퀀스 다이어그램을 통해 살펴보려고 합니다.
- Client가 객체를 생성하려고 JVM에게 요청합니다.
- JVM은 HeapMemory에서 충분한 메모리 공간이 있는지 확인합니다.
- 만약 메모리가 충분하지 않다면, JVM은 GarbageCollector를 호출하여 사용되지 않는 객체들을 제거하고 메모리를 회수하도록 합니다.
- 가비지 컬렉션 후, HeapMemory는 다시 메모리 상태를 확인합니다.
4.1 만약 여전히 메모리가 충분하지 않다면, HeapMemory는 JVM에게 "Out of Memory Error"를 보냅니다. 이 상황에서 프로그램은 종료되거나 예외 처리를 통해 복구될 수 있습니다.
4.2 만약 메모리가 충분해졌다면, HeapMemory는 JVM에게 메모리가 확보되었다고 알립니다. - 충분한 메모리가 확보되면, JVM은 HeapMemory에 객체를 할당하고 초기화합니다.
- 마지막으로, 객체의 참조를 Client에게 반환합니다.
바의 가비지 컬렉션 메커니즘을 이해하는 것은 메모리 관리와 애플리케이션 성능 최적화에 매우 중요합니다
반응형