상황트래픽이 급격히 증가했을 때 HTTP 요청 지연이 발생하였음.JVM 내 스레드 급격히 증가스레드는 급격히 증가한 후 peak치 유지한 후 점진적으로 감소동시점에 http duration 급증, 마찬가지로 급진적 감소 원인일시적으로 평시의 2~4배에 달하는 요청이 인입됨.스레드 생성으로 인한 CPU Usage 증가요청 처리를 위한 스레드 생성 대기열로 인한 CPU load 증가요청 대기로 인한 지연 발생생성된 스레드는 Tomcat이 수거하기 전까지 수 시간 이상 Idle Thread pool 잔류 해결 방안spring boot의 server.tomcat.threads.min-spare 값을 튜닝하여 스파이크 상황에서 스레드 생성으로 인한 대기 현상을 최소화 함. 참고max-thread는 4K로 잡혀있으..
spring
상황 WebClient를 사용해서 통신을 하고 있는데, 모종의 이유로 통신이 전혀 되지 않는 상황. 이로 인해 외부 서버와 통신하는 어플리케이션에서 장애가 발생함. 장애가 발생한 어플리케이션에서는 타임 아웃등의 에러가 떨어지는 중. 원인 WebClient는 API 요청 시 Connection Pool을 사용한다. 이미 사용 중이지 않은 Connection이 있다면 이를 재사용하고, 그렇지 않다면 새로운 Connection을 맺어 요청을 처리한다. 요청들은 대기열(Event Queue)에 대기하다가 순차적으로 처리된다. 여러 WebClient 인스턴스를 별도로 선언해 사용하더라도, 각 WebClient에 별도의 Connection Pool을 설정하지 않으면 글로벌 Queue를 공용으로 사용하게 된다...