[Spring] JVM 웜업
·
Project/Spring
문제 상황현재 백엔드 개발자로 참여하고 있는 서비스에서 JVM 웜업 문제를 해결하는 작업을 맡았다.먼저 Data Dog으로 배포 시간대의 Latency graph를 확인했다. 9시 40분 경에 배포를 했는데 그 시간대에 몇몇 api의 응답속도가 눈에 띄게 느려진 것을 확인할 수 있었다.이렇게 배포 직후 응답 속도가 느려지는 것을 JVM의 'cold start' 라고 한다. 정확히는 JVM의 JIT 컴파일러 때문에 발생하는 것이다.JIT 컴파일러JVM은 처음 실행된 메서드를 인터프리터로 돌리다가, 충분히 실행되면 JIT 컴파일을 통해 최적화한다. 이런식으로 최적화 하는 이유는 JVM의 특징과 관련이 있는데 Java는 자체적인 byte code를 사용하기 때문에 byte code를 기계어로 변환하는 과정이..