<aside> 📄
동시성 테스트 과정에서 발생한 트러블 슈팅입니다.
아래의 트러블 슈팅과 이어지는 내용입니다.
</aside>
전에 커넥션 풀 고갈 오류가 발생하여 커넥션 연결 타임아웃 시간을 길게 설정하여 오류를 해결한 경험이 있다.
커넥션 타임 아웃을 길게 설정하니 작은 요청에는 응답이 잘 돌아오나, 요청수를 높였더니 특정 구간에서 작업이 멈춘 것 처럼 보이는 현상이 있었다.
위의 에러를 해결하고자(= 그리고 타임아웃을 길게 두는 것 자체가 좋은 해결 방안은 아닌 것 같다는 생각이 들었다.) 커넥션 타임아웃시간을 3초로 두고 다시 에러를 해결해보고자 다른 방안을 생각하게 되었다.
HikariPool-1 - Connection is not available, request timed out after 3001ms.
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction
커넥션 타임 아웃 시간을 3초로 둔 뒤 다시 1000명을 요청하니, DB와 연결되지 못하고 예외가 발생하여 오류량이 엄청났다.
1초마다 10개의 요청을 10초동안 보냈을 경우의 결과
1초마다 1000개의 요청을 10초동안 보냈을 경우의 결과
tps가 좋게 나온 이유는 다 실패했기때문인 것 같다..