Projects/[Final] Shopping Mall Project

응답 지연 적용 상황, HikariCP 30 -> 50 증가 후 성능 비교

montmer27 2026. 5. 8. 16:55

이전 테스트

https://montmer27.tistory.com/271

 

응답 지연 적용 상황, HikariCP 20->30 증가 후 성능 비교

이전 테스트https://montmer27.tistory.com/269 가상 스레드 적용 전, 외부 결제 API 호출 시 응답시간 저하 변화이전 테스트 결과https://montmer27.tistory.com/268 HikariCP connection pool 증가 후 성능 개선 (결제 생성)

montmer27.tistory.com

가상 스레드는 적용하지 않았음

scenario-b

TEST-2

  • test type: pressure
  • 목적: Connection Pool 50 이하에서 수행되는지 확인
  • test detail
pressure: [
   { target: 30, duration: '1m' },
   { target: 50, duration: '1m' },
   { target: 70, duration: '1m' },
   { target: 100, duration: '1m' },
   { target: 0, duration: '30s' },
]

test result(console)

         /\      Grafana   /‾‾/                                                                                                                                               
    /\  /  \     |\  __   /  /                                                                                                                                                
   /  \/    \    | |/ /  /   ‾‾\                                                                                                                                              
  /          \   |   (  |  (‾)  |                                                                                                                                             
 / __________ \  |_|\_\  \_____/ 


     execution: local
        script: /k6/scenario-b.js
        output: InfluxDBv1 (http://k6-influxdb:8086)

     scenarios: (100.00%) 1 scenario, 500 max VUs, 5m0s max duration (incl. graceful stop):
              * purchase_flow: Up to 100.00 iterations/s for 4m30s over 5 stages (maxVUs: 50-500, gracefulStop: 30s)

WARN[0267] Insufficient VUs, reached 500 active VUs and cannot initialize more  executor=ramping-arrival-rate scenario=purchase_flow


  █ THRESHOLDS 

    http_req_duration{phase:scenario,name:cart_add}
    ✗ 'p(95)<800' p(95)=2.68s

    http_req_duration{phase:scenario,name:order_create}
    ✗ 'p(95)<1000' p(95)=2.57s

    http_req_duration{phase:scenario,name:payment_create}
    ✗ 'p(95)<1500' p(95)=3.18s

    http_req_failed
    ✓ 'rate<0.01' rate=0.00%

      {phase:scenario}
      ✓ 'rate<0.01' rate=0.00%


  █ TOTAL RESULTS 

    checks_total.......: 38030   122.404333/s
    checks_succeeded...: 100.00% 38030 out of 38030
    checks_failed......: 0.00%   0 out of 38030

    ✓ product fetch success
    ✓ login success
    ✓ address fetch success
    ✓ cart item added 201
    ✓ order created 201
    ✓ payment processed 201

    HTTP
    http_req_duration..........................: avg=828.56ms min=3.74ms   med=426.92ms max=4.39s  p(90)=2.6s  p(95)=2.89s
      { expected_response:true }...............: avg=828.56ms min=3.74ms   med=426.92ms max=4.39s  p(90)=2.6s  p(95)=2.89s
      { phase:scenario,name:cart_add }.........: avg=701.78ms min=17.91ms  med=51.16ms  max=4.39s  p(90)=2.58s p(95)=2.68s
      { phase:scenario,name:order_create }.....: avg=653.84ms min=3.74ms   med=16.19ms  max=3.58s  p(90)=2.47s p(95)=2.57s
      { phase:scenario,name:payment_create }...: avg=1.19s    min=312.64ms med=658.16ms max=4.26s  p(90)=3.04s p(95)=3.18s
    http_req_failed............................: 0.00% 0 out of 38030
      { phase:scenario }.......................: 0.00% 0 out of 37029
    http_reqs..................................: 38030 122.404333/s

    EXECUTION
    dropped_iterations.........................: 1186  3.81729/s
    iteration_duration.........................: avg=2.55s    min=336.29ms med=720.1ms  max=10.15s p(90)=8.17s p(95)=8.38s
    iterations.................................: 12343 39.727496/s
    vus........................................: 2     min=0          max=500
    vus_max....................................: 500   min=50         max=500

    NETWORK
    data_received..............................: 24 MB 78 kB/s
    data_sent..................................: 13 MB 43 kB/s




running (5m10.7s), 000/500 VUs, 12343 complete and 0 interrupted iterations
purchase_flow ✓ [======================================] 000/500 VUs  4m30s  001.29 iters/s
ERRO[0310] thresholds on metrics 'http_req_duration{phase:scenario,name:cart_add}, http_req_duration{phase:scenario,name:order_create}, http_req_duration{phase:scenario,name:payment_create}' have been crossed

test result(graph)

지표 HikariCP = 20 HikariCP = 30 HikariCP = 50 직전 대비 변화
전체 p95 6.07s 3.95s 2.89s 26.8% 완화
cart_add p95 5.8s 3.62s 2.68s 26.0% 완화
order_create p95 6.74s 3.58s 2.57s 28.2% 완화
payment_create p95 6.32s 4.14s 3.18s 23.2% 완화
평균 응답시간 3.38s 1.73s 828.56ms 52.1% 완화
med 응답시간 4.42s 1.27s 426.92ms 66.4% 완화
HTTP RPS 75.1/s 102.83/s 122.4/s 19.0% 개선
iterations 7,766 10,470 12,343 17.9% 개선
dropped iterations 5,763 3,059 1,186 61.2% 완화
iteration p95 16.28s 11.07s 8.38s 24.3% 완화

다음 스텝: 동일 테스트 반복 및 스레드 사용량 모니터링