단일 API 부하 테스트 (Load Test) 결과

캐싱 & 인덱싱 근거 분석

인덱싱 적용 결과


1. content-list API (콘텐츠 목록 조회)

k6 결과

█ THRESHOLDS

  http_req_duration
  ✓ 'p(95)<500' p(95)=215.19ms

  http_req_failed
  ✓ 'rate<0.05' rate=0.00%

█ TOTAL RESULTS

  checks_total.......: 39048   126.996091/s
  checks_succeeded...: 100.00% 39048 out of 39048
  checks_failed......: 0.00%   0 out of 39048

  ✓ 콘텐츠 목록 조회 성공

  HTTP
  http_req_duration..............: avg=51.42ms min=4.64ms med=18.39ms max=1.46s p(90)=127.01ms p(95)=215.19ms
    { expected_response:true }...: avg=51.42ms min=4.64ms med=18.39ms max=1.46s p(90)=127.01ms p(95)=215.19ms
  http_req_failed................: 0.00%  0 out of 39149
  http_reqs......................: 39149  127.324574/s

  EXECUTION
  iteration_duration.............: avg=1.15s   min=1.01s  med=1.05s   max=3.91s p(90)=1.42s    p(95)=1.65s
  iterations.....................: 13016  42.33203/s
  vus............................: 1      min=0          max=70
  vus_max........................: 70     min=70         max=70

  NETWORK
  data_received..................: 271 MB 880 kB/s
  data_sent......................: 25 MB  83 kB/s

running (5m07.5s), 00/70 VUs, 13016 complete and 0 interrupted iterations
default ✓ [======================================] 00/70 VUs  5m0s

docker stats (Peak 구간)

Container CPU % MEM Usage MEM %
mopl-app-1 134.50% 793.8MiB 10.13%
mopl-postgres-1 85.53% 102.2MiB 1.30%
redis 16.78% 13.65MiB 0.17%

HikariCP 커넥션 풀 (Peak 구간)

지표 의미
active 4 사용 중 커넥션
idle 6 유휴 커넥션
max 10 최대 풀 크기
pending 0 대기 중 요청
usage_max 0.511s 커넥션 최대 사용 시간

2. content-detail API (콘텐츠 상세 조회)

k6 결과