프로젝트의 기능은 거의 구현이 마무리 되었고 이제 남은 것은 실제 서비스 환경에서 서버가 잘 돌아가는지 확인해야하는 단계에 이르렀습니다. 서버의 성능을 테스트하기 위한 방법으로 가장 먼저 택한 방법은 부하테스트입니다.

❓ 부하테스트(Load Test)가 뭘까?

부하 테스트는 시스템이 실제 사용 환경에서 예상되는 부하를 견딜 수 있는지 검증하는 테스트입니다. 이는 많은 사용자가 동시에 시스템을 사용할 때의 성능과 안정성을 평가하는 중요한 과정입니다.

Watchducks는 사용자들의 요청을 클라이언트 서버로 프록싱하는 기술을 제공하기 때문에 최대한 많은 부하를 견딜 수 있는 프록시 서버를 제공해야합니다. 부하테스트를 통해 서버가 어느정도 수준의 부하를 견딜 수 있는지 미리 확인하고 성능 개선이 필요한 부분을 파악할 수 있습니다.


🔥 부하테스트 기록

실제 상황과 유사하게 하기 위해서 랜딩 페이지와 개별 페이지에 실제로 들어가는 api들을 시나리오에 추가하여 어느 정도의 부하를 견딜 수 있는지 테스트를 진행했습니다.

📖 부하테스트 시나리오

지금부터 수행할 부하테스트는 콘솔 서버에대한 부하테스트가 아닌 프록시 서버를 대상으로한 부하테스트입니다.

프록시 서버는 단순히 요청과 응답을 전달하는 서버이므로 많은 트래픽에 대한 부하 정도를 확인하기 위한 용도이기때문에 시나리오 연관성은 떨어질 수 있습니다.


1️⃣ 첫 부하테스트

첫 부하테스트는 꽤나 널널하게 최대 사용자 수 50명을 두고 테스트를 진행했습니다. 상세한 가상 유저 수는 아래와 같이 설정했습니다. API는 현재 사용 가능한 GET 요청에 대해 분산하여 진행했습니다.

phases:
  - name: Warm up # 부하 시작 전 웜업 단계
	  rampTo: 10
    duration: 30 # 30초간
    arrivalRate: 1 # 5명씩 증가
  - name: Ramp up load
    rampTo: 50 # 최대 50명의 유저
    duration: 60 # 60초간
    arrivalRate: 5 # 5명씩 증가