성능테스트의 목적?
서비스를 배포하고 운영시 얼마나 많은 사용자의 요청을 견딜수 있을까는 무중단 서비스에 있어서 매우 중요하다.
이러한 서비스의 가용성 판단지표는 SLO, SLI, SLA등이 있다.
서비스를 배포전 얼마만큼의 부하를 견딜수 있는가를 체크하는 것은 위 목표를 위해 필수적인 작업이다.
1. Throughput(TPS, QPS등의 지표로 얼마만큼의 부하를 견딜수 있는지),
2. Latency
이를 위해 위 두가지를 측정하는것이 필요하다.
말은 쉽다. 그래서 어떻게 하는가를 알아보자.
Locust.io
An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users.
locust.io
파이썬 부하테스트 툴이다.
1. 설치
pip install locust
2.실행
from locust import HttpUser, task
class HelloWorldUser(HttpUser):
@task
def hello_world(self):
self.client.get("/hello")
self.client.get("/world")
3. 터미널에서 locust 입력
$ locust
4. 부하테스트를 위한 유저수, Spawn rate, Host 입력
5. 결과
참고로 클라우드서비스(GCP, AWS)에서 모니터링툴로 서버의 성능에 대한
통계결과를 보여준다. 이를 적극 활용하는것도 바람직하다.
결론
건물 부하테스트 하듯이.. 우리의 서버도 튼튼하게 만듭시다.