뜌릅
HIKARICP 데드락(Connection Leak 원인 찾기, feat: JMETER) 본문
JMETER을 통해 부하테스트를 진행하기로 하였습니다.
우선 JMETER의 세팅방법부터 간단하게 설명하겠습니다.

다음과 같이 테스트 플랜을 설정합니다.
우선 쓰레드의 경우 15번 보낼것이기 때문에 아래와 같이 설정합니다. 이 경우 15개의 API 요청을 거의 동시에 요청한다고 볼수 있습니다.

저희 API 스웨거의 헤더에 맞게 HTTP HEADER MANAGER(JMETER)을 설정해 줍니다.

HTTP REQUEST는 자동접수중 가장 쿼리가 오래걸리는 API을 이용하여 부하테스트를 진행해 보겠습니다.
대략 쿼리 하나당 5초에서 15초정도 걸립니다. 아래와 같이 REQUEST BODY와 SERVER NAME과 PORT NUMBER을 사용하시면 됩니다. (저는 로컬 환경이니 아래처럼 한거니 알아서 맞게 설정해 주세요.)

실행을 시킬려면 상단의 초록색 화살표를 누르시면 됩니다.

기록을 볼까요?
그리고 시간이 좀더 지나니 아래와 같이 에러도 발생하였습니다.


즉 15개중 5개는 Connection문제로 실패, 9개는 sql null constraint violation으로 실패 1개는 성공입니다.
왜 이런일이 생긴 것일까요????
일단 HikariCp의 기본 Connection 개수는 10개입니다.
그래서 위의 5개는 Connection을 얻지 못하여 실패하였습니다. 따라서, 10개의 커넥션들에 대해서는 연결을 얻어서 진행하였지만, 5개의 경우 Connection 리소스를 얻지 못하고, DeadLock이 발생한것입니다.
HikariCp와 Connection에 대한 내용은 https://twocastle9.tistory.com/59
https://twocastle9.tistory.com/60을 참고하여 주세요.
9개가 실패한 이유는 https://twocastle9.tistory.com/62페이지에서 참고하여 주세요.(데드락과는 다른 원인입니다.)
감사합니다.
'SPRING' 카테고리의 다른 글
JWT 인증 (Access Token, Refresh Token, OAUTH2) (0) | 2024.04.09 |
---|---|
HIKARICP Property 설정값이 application파일에서 적용이 안됨. (0) | 2023.06.21 |
Audit Logging Column이 생성되지 않는 경우 (키중복 save) (0) | 2023.06.21 |
부하테스트 (0) | 2023.06.21 |
Soft Delete는 언제 사용하고, 어떻게 사용하나요?? (0) | 2023.06.21 |