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실패 |