스트레스 테스트 툴로 성능 측정
- API 성능을 측정하려면 목표 latency를 잡아야 한다. 
- 목표 latency를 충족하기 위해 여러 값을 돌려보면서 스케일 업을 하거나 nginx를 두는 등 해결책을 생각해본다. 
config:
  target: "http://00.00.00.00"
  phases:
    # 부하 테스트를 진행할 시간
    - duration: 60
      # 부하 테스트에 생성할 virtual user 수
      arrivalRate: 1
      name: Warm up
scenarios:
  - name: "just get hash"
    flow:
      - get:
          url: "/hash/123"artillery run --output report.json cpu-test.yaml부하 테스트를 실행한다.
artillery report report.json테스트 결과를 html로 만든다.

- arrivalRate: 1 

- arrivalRate: 8 
염두에 둬야 할 것
- 예상 TPS보다 여유롭게 성능 목표치를 잡는다. - 예상이 1000 TPS라면 트래픽이 몰릴 걸 예상해 최소 3~4천 이상으로 생각하고 인스턴스를 구성한다. 
 
- 기대 latency를 만족할 때까지 성능을 테스트한다. - 먼저 단일 요청에 대한 latency를 확인한다. 
- 기대치보다 높다면 스케일 아웃으로 해결되지 않는다. 
- 코드가 비효율적이거나 해당 API에서 I/O가 병목인 경우가 많다. 
- 네트워크에서 latency가 발생하는 경우도 있다. 
 
- 스케일 아웃으로 해결되지 않으면 여러 방면으로 병목을 의심해보자. 
Last updated
Was this helpful?