ADR-001 일주기 곡선 = k6 ramping-arrival-rate + 배율표 stage 확장
상태
채택 (2026-07-03)
맥락
24시간 상시 일주기 트래픽(평시 저부하 → 점심·저녁 피크 3000TPS)을 표현해야 하고, PRD는 목표 TPS 대비 ±10% 추종(10분 버킷 90%)과 미달 시 달성률·병목 기록(FR-8)을 요구한다. k6 executor는 크게 closed model(ramping-vus, VU 수 제어)과 open model(ramping-arrival-rate, 도착률 제어)로 나뉜다.
결정
ramping-arrival-rate(open model)를 채택한다. 시간대별 목표 TPS 배율표(JSON)를 lib/diurnal.js가 stages[{target, duration}]로 확장한다. TIME_SCALE로 실시간 24h와 압축 검증(기존 1/5 관례)을 모두 지원한다. B2C read=0.7×/write=0.3×, B2B=peak 100으로 스케일한다.
근거
- open model은 도착률(TPS)을 목표로 유지해 서버 지연과 무관하게 부하 강도를 고정 → “목표 TPS 추종”과 “달성률” 측정이 정확하다.
ramping-vus(closed)는 서버가 느려지면 완료 iteration이 줄어 TPS가 동반 하락 → 목표 추종 측정 불가.constant-arrival-rate다단 나열은 계단식이라 피크 진입/감쇠 곡선을 못 그리고 시나리오 수가 폭증.- 곡선을 데이터(배율표)로 선언 → 단위 테스트(피크 시점·합계)와 검토가 쉽다.
결과
- 마케팅 스파이크(20000TPS)도 같은 executor의 급경사 stage로 표현(±30초).
preAllocatedVUs/maxVUs가 러너 한계에 걸리면dropped_iterations로 client 병목이 드러나 FR-8 리포트에 반영.- 미채택: closed model, constant-arrival-rate 다단.