Skip to content

인터파크 0.001% Spike 테스트 보고서 #135

Closed
@junha-ahn

Description

@junha-ahn

Description

인터파크 기준 0.001% Spike 테스트 보고서

0.0001%는 데이터 부족으로 Dashboard Data Empty 문제 발생

  0.001% 0.01% 인터파크 기준
User per minute 2,00 2,000 20만
Request per minute 3,000 30,000 300만 (370만)

목표에 대한 더 자세한 내용은 f-lab-clone/ticketing-infra#62 참고

테스트 요약

  1. 천만건 데이터 SELECT COUNT(*)NoOffset 구현으로 개선
  2. 하나의 자원(=Event)에 대한 Lock 경쟁 발생: 대기열 시스템도입 으로 해결

Enviroment

NodeGroup  NodeType Running Pods
Ingress [t3.small] Nginx Ingress 팟 1대
Backend [t3.small, t3.small, t2.small, t2.small] 백엔드 1대 (기타 모니터링 등)

성능: https://aws.amazon.com/ko/ec2/instance-types/

테이블명  데이터 수
User 100만
Event 1,000만

Thresholds

thresholds: {
  http_req_failed: ['rate<0.01'], // http errors should be less than 1%
  http_req_duration: ['p(95)<300'], // 95% of requests should be below 300ms
}

100ms는 connection time으로 가정 (자세한 내용)

시나리오 (각 유저당 총 15 Request 발생)

  1. 이벤트 페이지 조회 (GET /events?sort=id,asc&size=20&page=0)
    • 총 13번 조회한다.
    • 매 반복마다 page += randomInt(1, 10)
  2. 이벤트 상세 조회 (GET /event/{ID})
    • 이때 사용하는 EventID는 미리 정해진 ID이다. (대다수의 유저가 예약에 성공할 수 있는 max_attendees 를 가진 이벤트를 사용)
  3. 예약 (POST /reservations)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions