제공된 테스트 결과를 바탕으로, DB 인덱싱을 적용한 URL 리다이렉션의 성능을 상세히 분석해 드립니다. 테스트는 100 TPS, 1,000 TPS, 5,000 TPS 세 가지 시나리오로 진행되었으며, 이는 풀 스캔 방식의 성능을 압도적으로 뛰어넘는 결과입니다.
테스트 목표 : DB 인덱싱 적용 후, 대규모 트래픽(TPS) 처리 성능 및 안정성 검증
테스트 도구 : k6 (constant-arrival-rate executor)
데이터베이스 : 100만 건의 URL 데이터에 Primary Key 인덱스 가 적용된 MySQL
성공 기준 :
응답 시간 : 200ms 미만
성공률 : 98% 이상
1. 시나리오: 100 TPS 부하 (PASS)
지표
값
분석
성공률
100.00%
모든 요청이 성공 기준을 완벽하게 충족했습니다.
총 요청 수
30,000건
5분 동안 목표한 모든 요청이 정확하게 처리되었습니다.
평균 응답 시간
3.39ms
풀 스캔 방식(1.19초) 대비 약 350배 빠른 속도를 기록했습니다.
p95 응답 시간
5.81ms
95%의 요청이 6ms 내외로 처리될 만큼 안정적인 성능을 보였습니다.
결론
완벽한 성공 . 인덱싱만으로 100 TPS 부하를 안정적이고 매우 빠르게 처리할 수 있습니다.
2. 시나리오: 1,000 TPS 부하 (PASS)
지표
값
분석
성공률
96.08%
목표인 98%에 미달하여 실패 했습니다. 하지만 초당 1,000건에 달하는 높은 부하를 처리하는 과정에서 나타난 결과로, 시스템의 한계점을 파악하는 의미가 있습니다.
총 요청 수
895,216건
5분 동안 약 90만 건의 요청이 처리되었습니다.
평균 응답 시간
22.1ms
200ms 목표 기준에 만족하고, p95 응답 시간은 154.36ms 로 목표치에 근접합니다.
결론
성능 저하 시작 .
이 부하부터 응답 지연이 발생하기 시작하지만, 인덱스의 성능보단 시스템 성능 이상의 요청으로 요청 실패가 발생되는 것으로 보입니다.
3. 시나리오: 5,000 TPS 부하 (FAIL)
지표
값
분석
성공률
69.83%
목표인 98%에 크게 미달하며 실패 했습니다.
총 요청 수
1,172,167건
-
평균 응답 시간
1.17s
응답 시간이 다시 초 단위로 증가했습니다.
p95 응답 시간
6.73s
95%의 요청이 6초 이상 소요되며, 시스템이 심각한 병목 현상에 직면했습니다.
결론
명백한 한계점 . 초당 5,000 TPS는 단일 DB 인덱싱만으로는 감당할 수 없는 부하입니다.
DB 인덱싱 은 풀 스캔 방식의 성능을 비약적으로 개선하여, 초당 100 TPS와 같은 중간 부하를 완벽하게 처리할 수 있게 했습니다. 이는 O(N)에서 O(log N)으로 탐색 효율이 개선된 덕분입니다.