콘텐츠로 이동

2022 10 19

2022-10-19

부하테스트

  • 개요
    • 부하가 많이 걸리는 SQL 뽑기
      • Production과 똑같은 DB 만들기
    • 일반적인 웹서비스의 경우 QPS에 5정도 곱해서
    • API throttling 끄기
      • API throttling : API 호출을 몇개까지 허용하는지 제한. redis에서 각 pod aggregate
        • 1분에 100번 정도
  • 부하테스트 시나리오
    • STRESS
      • load를 천천히 올리면서 극한까지
      • 부하 줄일때도 천천히 줄여
      • 일단 모니터링 툴도 볼 수 있어야해
      • AWS RDS의 Memory, IOPS, CPU, Cache
  • K6

    • 서비스 사용자의 사용 패턴에 따라 시나리오를 작성하기
      stages : [
          {duration: "2m", target: NUMBER_OF_MAX_VUS/4},
          {duration: "2m", target: NUMBER_OF_MAX_VUS/2},
          {duration: "2m", target: NUMBER_OF_MAX_VUS},
          {duration: "2m", target: NUMBER_OF_MAX_VUS/2},
          {duration: "2m", target: NUMBER_OF_MAX_VUS/4},
          {duration: "2m", target: 0}
      ]
      
    • 그래프로 시각화하여 병목 API에 대해 개선을 진행!
      • Cache + Redis -> 거의 이걸로 해결
      • ElasticSearch? -> 많은 테이블 정보 Aggregate -> source에서 뭐가 바뀌면 push 해줌
      • 쿼리 최적화도 같이 진행 with Index
    • 탑 쿼리 5개 정도 뽑아서 sleep 중간중간 줘서 실제 배합마냥!