Description
Description
인터파크 기준 0.001% Spike 테스트 보고서
- 다음 테스트: 인터파크
0.002%
Spike 테스트 보고서 #144
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 참고
테스트 요약
- 천만건 데이터
SELECT COUNT(*)
를NoOffset
구현으로 개선 - 하나의 자원(=Event)에 대한 Lock 경쟁 발생: 대기열 시스템도입 으로 해결
Enviroment
NodeGroup | NodeType | Running Pods |
---|---|---|
Ingress | [t3.small] |
Nginx Ingress 팟 1대 |
Backend | [t3.small, t3.small, t2.small, t2.small] |
백엔드 1대 (기타 모니터링 등) |
테이블명 | 데이터 수 |
---|---|
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 발생)
- 이벤트 페이지 조회 (
GET /events?sort=id,asc&size=20&page=0
)- 총 13번 조회한다.
- 매 반복마다
page += randomInt(1, 10)
- 이벤트 상세 조회 (
GET /event/{ID}
)- 이때 사용하는 EventID는 미리 정해진 ID이다. (대다수의 유저가 예약에 성공할 수 있는
max_attendees
를 가진 이벤트를 사용)
- 이때 사용하는 EventID는 미리 정해진 ID이다. (대다수의 유저가 예약에 성공할 수 있는
- 예약 (
POST /reservations
)
Metadata
Metadata
Assignees
Type
Projects
Status
Done
Status
Done