시나리오

<aside> ➡️ 전체 조회 / 당일 오픈런 행사 상품 조회의 속도 개선

</aside>

인원 : 100 X n 명

시간 : 5초

루프 : 10번

상품 데이터 수 : 5060500개

테스트에 사용된 API

상품 전체 조회 API

오픈런 상품 전체 조회 API

❗각각의 API는 별도로 진행

전체 조회

오픈런 조회

1차 테스트 - 초기 상태

테스트 환경

인원 : 100명

시간 : 5초

루프 : 10번

AWS : EC2 t3.micro - RDS t2.micro MySQL

테스트 결과

해결 방안

2차 테스트 - 조회 속도 향상<인덱스 적용>

테스트 환경

인원 : 100명

시간 : 5초

루프 : 10번

테스트 결과

해결 방안

3차 테스트 - 조회 속도 향상 <Cache- count 쿼리 >

테스트 환경

인원 : 100명

시간 : 5초

루프 : 10번

테스트 결과

다음 목표

4차 테스트 - 조회 속도 향상<캐시 - 페이지 별 상품 >

테스트 환경

인원 : 1500명

시간 : 5초

루프 : 10번

테스트 결과

다음 목표

5차 테스트 - Scale Up

테스트 환경

인원 : 4000명

시간 : 5초

루프 : 10번

AWS : EC2 c5.large - RDS t2.micro MySQL

테스트 결과

| 라벨 | 표본수 | 평균(ms) | 중앙값(ms) | 99%Line(ms) | 오류 (%) | 처리량 | 수신 KB/sec | 송신 KB/sec | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | /api/products | 40000 | 2200 | 2374 | 4403 | 0.00% | 1435.8/sec | 10011.31 | 200.50 | | TOTAL | 40000 | 2200 | 2374 | 4403 | 0.00% | 1435.8/sec | 10011.31 | 200.50 |

Untitled

추가 테스트 환경(최대 성능 기록)

인원 : 5000명

시간 : 5초

루프 : 10번

| 라벨 | 표본수 | 평균(ms) | 중앙값(ms) | 99%Line(ms) | 오류 (%) | 처리량 | 수신 KB/sec | 송신 KB/sec | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | /api/products/openrun | 50000 | 2835 | 3077 | 3634 | 0.00% | 1367.7/sec | 9599.50 | 192.25 | | TOTAL | 50000 | 2835 | 3077 | 3634 | 0.00% | 1367.7/sec | 9599.50 | 192.25 |

Untitled

1차 테스트 - 초기 상태

테스트 환경

인원 : 100명

시간 : 5초

루프 : 10

AWS : EC2 t3.micro - RDS t2.micro MySQL

테스트 결과

해결 방안

2차 테스트 - 조회 속도 향상<인덱스>

테스트 환경

인원 : 100명

시간 : 5초

루프 : 10번

테스트 결과

해결 방안

3차 테스트 - 조회 속도 향상 <Cache - 오픈런 상품>

테스트 환경

인원 : 300명

시간 : 5초

루프 : 10번

테스트 결과

다음 목표

4차 테스트 - Scale Up

테스트 환경

인원 : 3000명

시간 : 5초

루프 : 10번

AWS : EC2 c5.large - RDS t2.micro MySQL

테스트 결과