[JVM] JVM GC 튜닝
·
프로젝트/끼니콩
GC 튜닝을 왜 하는가 ? 자바에서 생성된 객체는 JVM의 가비지 컬렉터(Garbage Collector)가 자동으로 관리하고 제거한다. 이 덕분에 개발자는 메모리 해제에 직접 관여하지 않아도 되지만, GC의 자동 처리 자체가 항상 성능에 최적화되어 있지 않다. 애플리케이션에서 객체 생성과 소멸이 빈번해질 수록 GC가 처리해야 할 대상은 빠르게 증가하고, 그에 따라 GC 수행 횟수 또한 자연스럽게 늘어난다. 문제는 GC가 실행되는 동안 애플리케이션의 모든 스레드가 멈추는 Stop-The-World (STW) 구간이 발생한다는 점이다. 이 STW 시간이 길어지거나 자주 발생하면, 애플리케이션은 정상적으로 동작하고 있음에도 사용자 입장에서는 응답 지연, 타임아웃, 서비스 장애로 체감한다. 이러한 이유로,..