티스토리 뷰

Showpot 서비스 운영을 계획 중이다. 현재 준비 작업 중에 있으며, 서버의 경우 기능 구현은 거의 완료된 상황이다.
2024-12-04 기준 어플이 앱스토어에 등록되지는 않았다. (서비스 특성 상 웹사이트로 클라이언트를 만들지 않았다.)

예상되는 초기 유저 수를 고려해 부하를 견딜 수 있는지 확인하기 위해 성능 테스트를 진행하였다.

예상 유저 수: 100명
원하는 처리량: 50 ~ 100tps
사용 중인 인스턴스: aws t2.micro (프리티어)
메모리: 1GB + swap memory 2GB
vCPU: 1
  • 성능 테스트 툴의 경우, Locust를 선택하였다.
    • 지속적으로 부하를 발생시키는데에 적합하며, 각 API에 우선순위를 지정할 수 있다는 장점이 있기에 선택했다.

시나리오

  • 각 유저는 초기 1회 로그인을 시도한다.
  • 이후 백엔드 서버의 모든 API를 1 ~ 2 초에 1번씩 랜덤하게 호출하며, 쓰기 API에 비해 읽기 API를 비교적 높은 우선순위로 호출한다.
    • 실제 서버 운영을 하게 되면 읽기 작업이 더 많을 것으로 예상했다.

 

스크립트 예시

  • 스크립트의 경우 다음 Repository에 정리해두었다.
 

showpot-archive-BE/load-test/locustfile.py at main · AlreadyTakenSeat/showpot-archive-BE

Contribute to AlreadyTakenSeat/showpot-archive-BE development by creating an account on GitHub.

github.com

 

  • 글의 상단에 작성해둔 AWS 인스턴스에 약 10분 가량 부하를 주었고, 결과는 다음과 같다.
 

전체 API와 vus 현황

  • 요청을 꾸준히 보냈을때 에러는 발생하지 않았으며, API Latency가 안정적으로 유지되었다.

각 API 기록

  • API 들을 고르게 요청 중임을 알 수 있다.
  • Requests 가 적은 API의 경우 url path가 매번 달라져 다르게 나타나는 것이며, Locust 특성 상 이렇게 보여줄 뿐이다.

 

  • AWS의 하드웨어 자원 사용량 또한 확인했다.
  • 10분 동안 호출하는 작업을 두 번 진행했으며, 두 번 모두 20% 이하의 cpu 사용률을 보였다.
    • 크게 문제 되지 않을 수치라고 판단했다.

AWS CPU 사용량 (18.4%)

AWS CPU 사용량 (18.9%)

 

결론

  • 현재 인프라로 원하는 tps를 만족한다는 점을 확인했다.
  • 서비스 초기 단계에서 예상한 수치 기반으로 테스트한 부분임으로, 예상보다 많은 호출이 발생하거나 유저가 빠르게 늘어나는 등의 상황이 생길 때의 대처 방안도 추후 고민해보고자 한다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함