부하 테스트에 대한 기준 설정

완료됨

부하 테스트 및 임계값을 정의했으므로 이제 이러한 결과를 사용하여 기준을 작성해 보겠습니다.

기준은 테스트 실패 또는 성공을 평가하는 데 사용하는 메트릭 조건 집합입니다. 예를 들어 조건은 다음과 같습니다.

  • 초당 평균 요청 수
  • 오류율
  • 최대 응답 시간

부하 테스트에 대한 기준을 설정하려면 다음을 수행해야 합니다.

  1. 개별 사용자 흐름 및 전체 솔루션에 대한 기준 및 테스트 조건을 정의합니다.

  2. 일반 실행에 대한 임계값을 조정하여 애플리케이션이 예상되는 성능을 계속 제공하고 오류를 생성하지 않는지 확인합니다.

  3. 예상되는 오류율 급증과 일시적인 성능 저하를 허용하는 카오스 테스트에 대해 별도의 기준을 사용합니다.

이 활동은 연속되며 정기적으로 수행해야 합니다. 예를 들어 새 기능을 도입하거나 서비스 SKU를 변경한 후 기준을 검토해야 합니다.

Azure Load Testing을 사용하여 임계값 평가

개발 단계에서는 구성 요소 및 리소스 요구 사항의 성능이 명확하지 않은 경우가 많습니다. 부하 테스트는 스케일 아웃 동작을 포함하여 전체 솔루션 및 해당 구성 요소의 예상 성능을 식별하는 데 도움이 될 수 있습니다. 또한 기준 작성에 필요한 임계값을 식별하는 데 도움이 될 수 있습니다.

다음 질문을 하고 정기적으로 다시 평가합니다.

  • ‘개별 작업, 사용자 흐름 또는 API 호출을 완료하는 데 얼마나 걸리나요?’
  • ‘구성 요소가 초당 처리할 수 있는 요청, 작업 및 동시 사용자는 얼마나 되나요?’
  • ‘얼마나 많은 리소스가 사용되었나요?’
  • ‘10, 50, 100명의 동시 사용자가 기본 인프라 및 백 엔드 서비스에 어떤 영향을 주나요?’
  • ‘구성 요소는 언제 스케일 인 및 스케일 아웃해야 하나요?’

답변에 따라 테스트가 진행되거나 임계값을 얻을 수 있습니다. 초당 요청 수, 응답 시간 및 오류 비율은 모두 임계값의 적용 가능한 예입니다.

세부 정보를 적어 둔 후에 값을 사용하여 전체 솔루션 및 해당 구성 요소의 성능을 일관된 방식으로 분석하고 평가합니다. 또한 기준을 사용하여 예상 성능에서 변경 및 드리프트의 영향을 식별합니다.

테스트를 실행할 때 특수 사용 사례에 대해 잘못된 구성 요소 또는 부하 급증 등의 다른 요구 사항이 나타날 수 있습니다. 이러한 경우 더 높은 오류율 또는 더 낮은 초당 요청 수가 예상되고 허용될 수 있습니다. 이러한 상황을 수용하기 위해 조정된 임계값의 별도 기준을 유지할 수 있습니다. 예를 들어 다음과 같습니다.

  • 스케일 아웃 작업이 예상되고 필요한 고부하 시나리오. 작업이 완료될 때까지 일시적인 성능 저하가 나타날 수 있습니다.
  • 연속 유효성 검사 파이프라인의 일부로 진행되는 카오스 실험. 복원력 측정값이 애플리케이션을 자체 복구하거나 다른 지역으로 장애 조치하기 시작할 때까지 더 높은 오류율을 예상할 수 있습니다.

Azure Load Testing을 사용하여 정의된 임계값을 기준으로 시스템의 성능을 평가합니다. 이 서비스에는 기본 제공 테스트 조건 기능이 있습니다. 즉, 부하 테스트가 통과해야 하는 조건을 지정할 수 있습니다.

테스트 조건을 사용하여 다른 기준을 구현할 수 있습니다. 예시:

Table that shows sample test criteria.

JSON에서 이러한 테스트 조건을 지정하고 API를 사용하여 부하 테스트에 추가할 수 있습니다. 예를 들면 다음과 같습니다.

[
    {
        "passFailMetrics": {
            "<guid>": {
                "clientmetric": "requests_per_sec",
                "aggregate": "avg",
                "condition": "<",
                "value": 1200.0,
                "actualValue": 0.0,
                "result": null,
                "action": "continue"
            },
            "<guid>": {
                "clientmetric": "response_time_ms",
                "aggregate": "avg",
                "condition": ">",
                "value": 75.0,
                "actualValue": 0.0,
                "action": "continue"
              },
              "<guid>": {
                "clientmetric": "error",
                "aggregate": "percentage",
                "condition": ">",
                "value": 0.0,
                "actualValue": 0.0,
                "action": "continue"
              }
        }
    }
]

지속적인 유효성 검사의 또 다른 중요한 측면은 실제 문제를 시뮬레이트하는 테스트를 삽입하는 것입니다. 다음 단원에서는 유효성 검사 프로세스에 카오스 실험을 추가하는 방법을 알아봅니다.

지식 점검

1.

몇 개의 기준이 필요한가요?

2.

기준이 배포에서 제공할 수 있는 성능을 정의하나요?

3.

기준을 평가하고 업데이트해야 하는 경우는 언제인가요?