IT STUDY LOG

[성능 테스트] 02. 부하 테스트 기본 본문

devops bootcamp 4/DevOps 인프라 관리

[성능 테스트] 02. 부하 테스트 기본

roheerumi 2023. 6. 6. 14:26

# 학습 목표

  • 시스템의 가용성과 확장성을 평가할 수 있다.
  • 부하 테스트의 목적을 이해할 수 있다.
  • Throughput과 Latency의 개념을 이해할 수 있다.
  • 시스템의 병목이 발생하는 주요 원인과 대책을 이해할 수 있다.
  • SLO를 설정하고, 이를 기반으로 부하 테스트를 진행하고, 달성 여부를 파악할 수 있다.

# 학습 내용

1.  부하 테스트의 목적

클라우드 환경에서의 부하 테스트 목적

  1. 시스템 확장성을 가졌는지 확인
  2. 성능을 개선하기 위해 확장해야 하는 시스템이 무엇인지 파악
  3. 부하가 많이 발생할 때 문제 상황 개선
  4. 각 시스템의 병목 지점을 예측하고 진단 및 개선

 

어떤 부분을 확장할 것인가? : 확장성에 대한 특징 파악

- Throughput은 시간당 처리량으로, 시스템의 성능 지표는 RPS(request per second), TPS(transaction per second)와 같은 단위로 표현됨

- Throughput은 데이터 전송량에 포커스를 맞춘 성능 지표

- 한편 볼륨의 성능을 측정할 경우에는 IOPS(Input/Output per second)라는 단위를 사용합

- 성능을 측정할 때는, 인프라 내의 구성요소(티어)로 구분된 각 요소를 구분하지 않고 통합해서, 특정 작업이 얼마만큼의 Throughput을 갖는지를 측정

확장할 때 고려할 수 있는 부분

  • 1000rps에서 2000rps로 성능을 두 배 개선하기 위해서는, 웹서버를 확장해야 할까? DB 서버를 확장해야 할까?
  • 시스템 구성 변경 시 다운타임은 얼마나 허용되는가? 서비스 정지 없이 가능한가?
  • 현재 시스템에서 낼 수 있는 최대 성능(limit)은 어디까지인가?

 

부하가 많이 발생할 때의 문제 상황 개선

부하가 많이 발생할 때 시스템에 일어나는 문제 요소

  • 응답 속도(Latency) 저하
  • 시스템 잠금(Lock) 경합
  • 부하 발생 시 애플리케이션 또는 서버 에러 발생
  • 데이터 일관성 문제와 손실

- 위 문제 사항을 해결할 수 있을 만큼의 부하 수용 범위 파악 필요

 

병목 지점을 예측하고 진단 및 개선

 

2. Throughput과 Latency

- throughtput과 latency는 시스템 성능 지표의 주요 메트릭이며 부하 테스트에서 이 두가지 지표를 활용해 평가

Throughput

- 시간당 처리량을 의미

웹 애플리케이션 성능 지표로서의 throughput의 대표적인 예

  • 1초에 처리하는 HTTP 요청 수 (rps)
  • (동영상 스트리밍 서비스와 같이 대역폭이 중요한 경우) 네트워크로 전송되는 데이터 전송 속도

 

Latency

- 처리 시간을 의미

- 사용자가 어떤 웹페이지를 보기 위한 Latency는 사용자의 인터넷 환경, 브라우저 등의 개별 환경에 대한 변수가 존재함. 즉, "네트워크를 통한 데이터 왕복 시간"도 포함

- but, 성능 테스트를 진행할 때에는, 사용자 환경에 따른 변인을 통제하거나, 애초에 네트워크 상황을 고려하지 않고 테스트를 진행

- 이후 언급하는 Latency는 네트워크 상황을 고려하지 않은 시스템이 요청을 받고 응답을 줄 때까지의 시간만을 의미

 

하위 시스템으로 구성된 경우에서의 Throughput과 Latency

고속도로의 비유를 통한 Throughput과 Latency 이해

 - 하위 시스템은 서울/대구/부산 각각의 도시를 의미

 - 각 도시 간에는 서로 다른 Throughput과 Latency를 가진 고속도로 두 개가 존재한다고 가정

  • 이때 Latency는 대기 시간을 포함한, 각 하위 시스템 처리 시간의 총합으로 계산
  • 반면 Throughput은 하위 시스템 Throughput 중 최소값을 전체 시스템의 Throughput으로 계산

출처 : 코드스테이츠 데브옵스 부트캠프 과정

  • 서울-부산 간 Latency: 각 구간의 소요 시간 합계인 5시간
  • 서울-부산 간 Throughput: 각 구간에 도달하는 차량 대수 중 최소값인 800대/시간
Comments