Projects/[Final] Shopping Mall Project

HikariCP connection pool 증가 후 성능 개선 (결제 생성)

montmer27 2026. 5. 8. 14:21

이전 테스트 결과

https://montmer27.tistory.com/267

 

스케줄러 인터벌 연장 후 성능 개선 (결제 생성)

이전 테스트 결과https://montmer27.tistory.com/266 이중 락 해제 후 테스트 결과 (결제 생성)이전 테스트 결과https://montmer27.tistory.com/265 가상 스레드를 적용했는데 왜 성능이 그대로인가관련 포스팅https:/

montmer27.tistory.com

 

변경사항: HikariCP connection pool을 10(기본값)에서 20으로 늘렸음

scenario-b

TEST-2

  • test type: pressure
  • 목적: 실패 지점 관찰
  • 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[0251] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0251] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0251] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0251] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0252] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0252] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0252] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0252] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0252] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0252] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0252] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0252] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0271] 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.65s

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

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

    http_req_failed
    ✓ 'rate<0.01' rate=0.01%

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


  █ TOTAL RESULTS 

    checks_total.......: 38447  122.865282/s
    checks_succeeded...: 99.98% 38441 out of 38447
    checks_failed......: 0.01%  6 out of 38447

    ✓ product fetch success
    ✓ login success
    ✓ address fetch success
    ✗ cart item added 201
      ↳  99% — ✓ 12480 / ✗ 6
    ✓ order created 201
    ✓ payment processed 201

    HTTP
    http_req_duration..........................: avg=630.04ms min=0s      med=35.27ms max=5.1s  p(90)=2.37s p(95)=2.6s 
      { expected_response:true }...............: avg=630.13ms min=3.8ms   med=35.28ms max=5.1s  p(90)=2.37s p(95)=2.6s 
      { phase:scenario,name:cart_add }.........: avg=670.69ms min=0s      med=40.14ms max=4.22s p(90)=2.43s p(95)=2.65s
      { phase:scenario,name:order_create }.....: avg=620.04ms min=3.8ms   med=13.3ms  max=4.11s p(90)=2.33s p(95)=2.54s
      { phase:scenario,name:payment_create }...: avg=646.49ms min=11.1ms  med=25.76ms max=5.1s  p(90)=2.38s p(95)=2.61s
    http_req_failed............................: 0.01% 6 out of 38447
      { phase:scenario }.......................: 0.01% 6 out of 37446
    http_reqs..................................: 38447 122.865282/s

    EXECUTION
    dropped_iterations.........................: 1044  3.336316/s
    iteration_duration.........................: avg=1.95s    min=35.79ms med=78.67ms max=30s   p(90)=7.17s p(95)=7.77s
    iterations.................................: 12486 39.901576/s
    vus........................................: 0     min=0          max=500
    vus_max....................................: 500   min=50         max=500

    NETWORK
    data_received..............................: 25 MB 78 kB/s
    data_sent..................................: 14 MB 43 kB/s




running (5m12.9s), 000/500 VUs, 12486 complete and 0 interrupted iterations
purchase_flow ✓ [======================================] 000/500 VUs  4m30s  001.29 iters/s
ERRO[0313] 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)

지표 1차 측정 이중 락 해제 후 스케줄러 인터벌 완화 후 HikariCP 증가 후 직전 대비 변화
전체 p95 5.03s 4.07s 2.94s 2.6s 11.6%
cart_add p95 5.06s 4.09s 2.95s 2.65s 10.2%
order_create p95 4.99s 4.05s 2.92s 2.54s 13.0% 완화
payment_create p95 5.03s 4.1s 2.94s 2.61s 11.2% 완화
평균 응답시간 2.89s 1.35s 781.73ms 630.04ms 19.4% 완화
med 응답시간 4.31s 181.92ms 60.14ms 35.26ms 41.4% 완화
HTTP RPS 74.71/s 104.62/s 120.46/s 122.86/s 2.0% 개선
iterations 8,399 10,624 12,150 12,486 2.8% 개선
dropped iterations 5,130 2,905 1,379 1044 24.3% 완화
iteration p95 14.43s 13s 8.75s 7.77s 11.2% 완화