CHAAANY ARCHIVE

ApplicationStartup

2개의 기록을 주제별로 둘러보세요.

Spring Boot 시작 시간 줄이기: 측정부터 Lazy·AOT 판단까지

Spring Boot 시작 시간은 설정 목록을 한꺼번에 적용해서 줄이는 문제가 아니다. 먼저 어디까지를 시작 완료로 볼지 정의하고, 빈 생성·자동 설정·외부 연결·JVM 중 어느 구간이 느린지 측정해야 한다. 원인을 모른 채 lazy initialization이나 힙 옵션을 켜면 시작 비용을 첫 요청으로 옮기거나 장애 발견만 늦출 수 있다.기존 글에 있던 JPA 연관관계의 지연 로딩, Tomcat 연결 타임아웃과 스레드 수는 일반적인 애플리케이션 시작 시간 개선책이 아니다. 아래에서는 시작 경로에 직접 영향을 주는 항목만 남겼다.먼저 ‘시작 시간’을 같은 기준으로 잰다프로세스가 생성된 시각, Spring ApplicationContext가 갱신된 시각, ApplicationRunner가 끝난 시각, re..

Spring Boot 시작이 느릴 때: CPU 제한보다 먼저 측정할 것

Spring Boot application의 시작 시간이 길어지면 CPU request나 limit부터 올리고 싶어진다. CPU가 부족해 실제로 느려지는 경우도 있다. 하지만 “core를 늘리면 bean이 병렬로 초기화돼 시작이 빨라진다”는 식으로 일반화하면 원인을 놓치기 쉽다.시작 과정에는 CPU를 쓰는 작업과 외부 응답을 기다리는 작업이 섞여 있다. 어느 구간이 느린지 측정한 뒤 CPU와의 관계를 확인해야 한다.먼저 시작 시간의 끝점을 정한다하나의 application에도 여러 시점이 있다.process 시작 → JVM·class loading → Spring context 준비와 refresh → singleton bean 생성 → runner 실행 → ApplicationReadyEven..

728x90