시나리오

k6을 활용한 동일한 열차의 동일 좌석에 대한 조회 및 동시 예매 시도 시 동시성 / 부하 테스트

아래 서버 스펙의 환경에서 VU 2000건의 요청을 처리하는 것이 목표

예상 결과

1명을 제외한 이외의 모든 인원은 좌석 예매 실패 처리

서버 스펙

테스트 히스토리

회차 사용자 수(VU) 열차 조회 p95 좌석 조회 p95 예약 p95 CPU 최대 사용량 이벤트 루프 p99 성공 여부 비고
1 100 2.42s 2.19ms 412ms 0.192 81.9ms ✅ 1 성공 / 99 실패
2 100 964ms 1.78ms 222ms 0.112 48.ms ✅ 1 성공 / 99 실패
3 300 2.42s 9.75ms 496ms 0.3 150ms ⛔ 1 성공 / 190실패 / 109 DB Connection Timeout 3회차 이슈 리포트 참조
4 300 2.42s 2.42s 219ms 0.262 89.3ms ✅ 1 성공 299 실패 Redis 캐싱 도입
5 500 4.88s 4.81s 120ms 0.424 953ms ⛔ 1 성공 489실패 / 10 DB Connection Timeout
6 500 2.44.s 2.42s 154ms 0.392 60.9ms ✅ 1 성공 499 실패 Redis CommandTimeout 증가
7 1000 2.34s 764ms 2.42s 0.584 71ms ⛔간헐적 실패
8 1000 3.79s 1.39s 94.7ms 0.704 906ms ✅1성공 999실패 열차 조회 Fallback DB조회 SingleFlight 추가
9 1500 1.74s 2.28s 48.2ms 0.721 768ms ✅1성공 1499실패
10 2000 4.88s 442ms 2.37s 0.888 698ms ⛔ 385건 DB Connection Timeout
11 1500 - - - - - ✅ 1,500명 입장 / 퇴장 완료 대기열 시스템 추가 후 1000명 정원 제한하여 정해진 인원수만큼 입장 처리
12 1000 753ms 1.71s 1.58s 0.825 768ms ✅ 1성공 999실패
13 2000 921ms 398ms 427ms 0.861 607ms ✅ 1성공 1999실패