| 시나리오 | VU | Duration | TPS | P95 | P99 | Error | 판정 |
|---|---|---|---|---|---|---|---|
| 정상 트래픽 (Normal) | 50 | 30분 | 1,842 | 182ms | 412ms | 0.08% | PASS |
| 피크 트래픽 (Peak) | 500 | 30분 | 4,210 | 687ms | 2,410ms | 0.94% | WARN · p99 초과 |
| 급증 유입 (Surge) | 0→2000 | 5분 ramp + 20분 | 3,120 | 1,420ms | 5,890ms | 3.41% | FAIL · DB pool exhaust |
| 회귀 재수행 (튜닝 후) | 500 | 30분 | 5,120 | 240ms | 820ms | 0.12% | PASS · 개선안 적용 후 |
| Endpoint | Avg | P50 | P95 | P99 | Max | TPS | 판정 |
|---|---|---|---|---|---|---|---|
| GET /products/{id} | 48 | 42 | 98 | 210 | 512 | 1,210 | PASS |
| GET /cart | 62 | 55 | 124 | 287 | 640 | 620 | PASS |
| POST /auth/login | 82 | 76 | 168 | 410 | 1,210 | 340 | PASS |
| POST /coupons/apply | 210 | 182 | 520 | 1,420 | 3,280 | 210 | WARN |
| POST /orders | 340 | 280 | 920 | 2,410 | 5,120 | 890 | FAIL · p99 |
| POST /payments | 420 | 310 | 1,180 | 2,980 | 6,420 | 410 | FAIL · p99 |
| 구간 | 요청수 | 2xx | 4xx | 5xx | Error% | 주요 사유 |
|---|---|---|---|---|---|---|
| 0 ~ 2분 | 287,410 | 99.84% | 0.12% | 0.04% | 0.16% | 정상 |
| 2 ~ 5분 (ramp) | 821,290 | 99.21% | 0.18% | 0.61% | 0.79% | 일부 timeout 시작 |
| 5 ~ 10분 (피크 진입) | 1,420,320 | 96.12% | 0.24% | 3.64% | 3.88% | 503 · DB pool 고갈 |
| 10 ~ 20분 (피크 유지) | 2,840,110 | 96.59% | 0.21% | 3.20% | 3.41% | 503 · 502 혼재 |
| 20 ~ 25분 (cool-down) | 1,210,450 | 99.41% | 0.14% | 0.45% | 0.59% | 회복 |
| Grafana · API Latency | grafana.qalabs.test/d/checkout-latency |
| Grafana · Resource | grafana.qalabs.test/d/checkout-resource |
| CloudWatch · RDS | AWS CloudWatch · rds-checkout-prod (CPU / Connections / ReadLatency) |
| APM · Datadog | app.datadoghq.com/apm/services/checkout-api |
| nGrinder Report | ngrinder.qalabs.test/perftest/detail_report/2618 |