학습 목표
- 시스템의 가용성과 확장성을 평가할 수 있다.
- 부하 테스트의 목적을 이해할 수 있다.
- Throughput과 Latency의 개념을 이해할 수 있다.
- 시스템의 병목이 발생하는 주요 원인과 대책을 이해할 수 있다.
- SLO를 설정하고, 이를 기반으로 부하 테스트를 진행하고, 달성 여부를 파악할 수 있다.
- 부하 테스트를 진행하기 앞서, 서비스 수준 목표(SLO)를 설정하는 것이 좋음
- 먼저 척도를 표준화하고, 다음과 같은 목표를 설정
- Latency에 중점을 둔 SLO 예시
- GET 호출의 90%는 1ms 이내에 완료해야 합니다.
- GET 호출의 99%는 10ms 이내에 완료해야 합니다.
- GET 호출의 99.9%는 100ms 이내에 완료해야 합니다.
- Throughput에 중점을 둔 SLO 예시
- 결국 Throughput은 순간적으로 요청이 치솟는 피크(peak) 트래픽에서 처리량을 바탕으로 함
- 예시) 1일 기준 RPS를 계산하고자 할 때
- 시나리오
- DAU(Daily Active User: 1일 접속자 수): 5만 명
- 1명당 평균 접속 횟수: 20회
- 1일 평균 접속 수에 대한 피크 트래픽 배율: 3배(보통 평균의 2~3배를 곱함)
- 안전 계수(얼마만큼 넉넉하게 프로비저닝 할 것인가): 3배
- 이 경우 하루가 종 86400초이므로, 50000 * 20 / 86400 * 3 * 3 = 104RPS
- 이를 바탕으로 도출한 SLO: 서비느는 100RPS를 달성해야 함
- 시나리오
'Code States > TIL' 카테고리의 다른 글
[0614] AWS DynamoDB, AWS RDS mysql, DBeaver 실습 (0) | 2023.06.15 |
---|---|
[0608] (실습) 성능 테스트 - aws EC2와 K6를 이용한 성능테스트 (0) | 2023.06.08 |
[0607] 성능 테스트 - 병목 찾기 (0) | 2023.06.08 |
[0607] 성능 테스트 - 부하 테스트 기본 (0) | 2023.06.08 |
[0607] 성능 테스트 - 가용성과 확장성 (0) | 2023.06.07 |