Projects/[Final] Shopping Mall Project

이중 락 해제 후 테스트 결과 (결제 생성)

montmer27 2026. 5. 8. 11:04

이전 테스트 결과

https://montmer27.tistory.com/265

 

가상 스레드를 적용했는데 왜 성능이 그대로인가

관련 포스팅https://montmer27.tistory.com/263 가상 스레드 적용 전 테스트 결과 (결제 생성)scenario-b테스트는 load와 pressure로 나누어 2차례에 걸쳐 실시했다.load test에서는 안정적인 baseline을 확인한다.stres

montmer27.tistory.com

 

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[0228] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0228] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0228] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0228] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0230] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0230] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0230] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0230] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0230] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0230] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0231] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0231] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0232] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0232] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0232] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0232] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0233] Request Failed                                error="Post \"http://host.docker.internal:8080/carts/items?sort=createdAt,desc&size=1\": dial: i/o timeout"
ERRO[0233] CART FAILED: status = 0, bodyPreview =        source=console
WARN[0240] 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)=4.09s

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

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

    http_req_failed
    ✓ 'rate<0.01' rate=0.02%

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


  █ TOTAL RESULTS 

    checks_total.......: 32855  104.622197/s
    checks_succeeded...: 99.97% 32846 out of 32855
    checks_failed......: 0.02%  9 out of 32855

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

    HTTP
    http_req_duration..........................: avg=1.35s min=0s      med=181.92ms max=10.18s p(90)=3.86s  p(95)=4.07s
      { expected_response:true }...............: avg=1.35s min=4.08ms  med=182.23ms max=10.18s p(90)=3.86s  p(95)=4.07s
      { phase:scenario,name:cart_add }.........: avg=1.4s  min=0s      med=268.21ms max=10.18s p(90)=3.89s  p(95)=4.09s
      { phase:scenario,name:order_create }.....: avg=1.38s min=4.08ms  med=238.73ms max=10.15s p(90)=3.86s  p(95)=4.05s
      { phase:scenario,name:payment_create }...: avg=1.4s  min=11.39ms med=272.46ms max=9.94s  p(90)=3.89s  p(95)=4.1s 
    http_req_failed............................: 0.02% 9 out of 32855
      { phase:scenario }.......................: 0.02% 9 out of 31854
    http_reqs..................................: 32855 104.622197/s

    EXECUTION
    dropped_iterations.........................: 2905  9.25057/s
    iteration_duration.........................: avg=4.21s min=35.85ms med=859.62ms max=30s    p(90)=11.78s p(95)=13s  
    iterations.................................: 10624 33.830657/s
    vus........................................: 9     min=0          max=500
    vus_max....................................: 500   min=50         max=500

    NETWORK
    data_received..............................: 21 MB 67 kB/s
    data_sent..................................: 12 MB 37 kB/s




running (5m14.0s), 000/500 VUs, 10624 complete and 0 interrupted iterations
purchase_flow ✓ [======================================] 000/500 VUs  4m30s  001.29 iters/s
ERRO[0314] 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차 측정 가상 스레드 적용 후 이중 락 해제 후 변화
전체 p95 5.03s 5.21s 4.07s 21.9% 완화
cart_add p95 5.06s 5.25s 4.09s 22.1% 완화
order_create p95 4.99s 5.16s 4.05s 21.5% 완화
payment_create p95 5.03s 5.20s 4.1s 21.2% 완화
평균 응답시간 2.89s 2.99s 1.35s 54.8% 완화
HTTP RPS 74.71/s 72.89/s 104.62/s 43.5% 개선
iterations 8,399 8,216 10,624 29.3% 개선
dropped iterations 5,130 5,313 2,905 45.3% 완화
iteration p95 14.43s 15.13s 13s 14.1% 완화