Code States/TIL

[0608] 성능 테스트 - 부하 테스트 계획

ki1111m2 2023. 6. 8. 11:01

학습 목표

  • 시스템의 가용성과 확장성을 평가할 수 있다.
  • 부하 테스트의 목적을 이해할 수 있다.
  • 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를 달성해야 함