본문 바로가기
★ 프로젝트 + 트러블 슈팅 ★

2022.12.10 TIL (PC 성능에 따른 Jmeter 부하테스트 결과값 상이??)

by 리승우 2022. 12. 10.

PC 성능에 따라서 Jmeter 부하테스트 결과값이 다른 상황이 발생했다.

이게 가능한가??

아래에 오늘 있었던 일들을 정리하였다.

 

DB 커넥션 풀이 모자라 병목현상이 발생하여 부하테스트 결과값에 계속 에러가 뜨는 것으로 생각하였다.

그래서 DB 스케일업을 했는데도 에러가 발생하여 이런저런 시도를 한 내용들이다.

마지막엔 반전이 숨어있다.

 

이따 아침에 이유를 알아봐야 겠다...

도대체 왜일까..

 

[부하테스트 트러블 슈팅을 하며 그동안 쌓아온 기록들을 아래에 기술]

https://github.com/OnNaNOn/OMG/issues/213

 

ALB(Application-Load Balancer) + Auto Scaling 트러블슈팅 · Issue #213 · OnNaNOn/OMG

💡 이슈 내용 AWS기준, ubuntu 20.04버전 t2.micro EC2를 이용하여 ALB(Application-Load Balancer) + Auto Scaling을 진행하였다. 헌데 최소 EC2를 2개로 운영하여도 제이미터 부하테스트로 3초동안 약 7,000개의 요청

github.com

 

💡 이슈 내용

스케일업된 DB로 변경 후, 아래에 테스트들을 진행하였음.
그럼에도 에러가 발생하여, 혹시 모르니 EC2 서버도 스케일업하여 추가 테스트를 진행하였음

 

🔎 테스트 결과 리스트

프리티어 EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 및 서버설정 없음

8000회 요청 / 5초 / 5회 / 조회기능
=> 1분 31초 소요 + 에러 34%
8000회 요청 / 5초 / 10회 / 조회기능
=> 중간에 테스트 중단함 + 에러발생

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 및 서버설정 없음

8000회 요청 / 5초 / 5회 / 조회기능
=> 1분 16초 소요 + 에러 27,7~30.5%

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 130 + tomcat threads-max 150

8000회 요청 / 5초 / 5회 / 조회기능
=> 1분 15초 소요 + 에러 28,7%

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 150 + tomcat threads-max 190 + tomcat max-connections 3000

8000회 요청 / 5초 / 5회 / 조회기능
=> 1분 15초 소요 + 에러 28,7%

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 10 + tomcat threads-max 60

8000회 요청 / 5초 / 10회 / 조회기능
=> 1분 28초 소요 + 에러 27,7%

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 10 + tomcat threads-max 60 + tomcat connection time-out 1800000

8000회 요청 / 5초 / 10회 / 조회기능
=> 2분 45초 소요 + 에러 30.7%

 작업 결과

모두 에러가 발생하였음.
다른 조원의 PC에서 제이미터를 한 결과, 에러 0% 결과가 나왔음
(조건은 다르게 먹였으나, 본인이 시도해도 에러가 떴음. 왜지??)

 

😂 [다른 조원 테스트 성공결과]

테스트는 모두 4000회 요청 / 5초 / 10회 반복으로 시도하였음 (총 40,000요청)

프리티어 EC2 1개 + 프리티어 RDS (레플리케이션 2개)

 

 

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 10 + tomcat threads-max 60

 

 

t2.large EC2 1개 + db.m5.4xlarge (레플리케이션 없이)
hikari maximum-pool-size 160 + tomcat threads-max 200

 

 

프리티어 EC2 1개 + 프리티어 RDS (레플리케이션 2개)
hikari maximum-pool-size 10 + tomcat threads-max 60 + tomcat connection-timeout 1800000

 

 

🚨 필수 확인해야할 사항

1. 같은 조건으로 하였는데, 왜 본인 PC의 jmeter의 결과값은 다르게 산출된 것인지?

2. tomcat threads-max는 기본값이 200인데, 60으로 낮춰서 진행하는 것이 서버 튜닝에 있어 어떤 의미인 것인지?

3. tomcat connection-timeout을 통한 서버튜닝이 어떻게 가능한 것인지?

 

원리파악이 중요한 것 같다.. 이따 아침에 꼭 알아봐야겠다.

댓글