다음을 통해 공유


벡터 검색 엔드포인트에 대한 부하 테스트 구성

이 페이지에서는 부하 테스트를 위한 예제 Notebook을 제공하고 벡터 검색 엔드포인트 성능을 최적화하기 위해 부하 테스트를 실행하기 위한 설치 요구 사항, 인증, 클러스터 구성 및 단계별 지침을 다룹니다.

부하 테스트 및 관련 개념에 대한 자세한 내용은 엔드포인트를 제공하기 위한 부하 테스트를 참조하세요.

요구 사항

다음 파일 및 예제 Notebook의 복사본을 다운로드하여 Azure Databricks 작업 영역으로 가져옵니다.

  • input.json. 이 파일은 엔드포인트에 대한 모든 동시 연결에서 전송되는 페이로드를 지정합니다. 페이로드의 크기에 중요한 엔드포인트를 테스트하는 경우 입력 페이로드가 엔드포인트를 사용하는 방법을 반영하는지 확인합니다. 페이로드 테스트를 참조하세요.
  • fast_vs_load_test_async_load.py. 이 스크립트는 예제 노트북에서 인증 토큰을 확인하고 파일 내용을 읽는 데 사용됩니다.

메뚜기 부하 테스트 Notebook

노트북 받기

최상의 성능을 위해 Notebook을 실행하는 데 사용하는 클러스터의 작업자에 대해 많은 수의 코어와 높은 메모리를 선택합니다.

메뚜기

Locust 는 프로덕션 등급 엔드포인트를 평가하는 데 일반적으로 사용되는 부하 테스트를 위한 오픈 소스 프레임워크입니다. Locust 프레임워크를 사용하면 클라이언트 연결 수 및 클라이언트 연결 생성 속도와 같은 다양한 매개 변수를 수정하는 동시에 테스트 전체에서 엔드포인트의 성능을 측정할 수 있습니다. Locust는 접근 방식을 표준화하고 자동화할 때 모든 예제 코드에 사용됩니다.

Locust는 CPU 리소스를 사용하여 테스트를 실행합니다. 페이로드에 따라 CPU 코어당 초당 약 4,000개의 요청이 용이합니다. 예제 Notebook --processes -1 에서는 Locust가 드라이버의 CPU 코어 수를 자동으로 검색하고 완전히 사용할 수 있도록 플래그가 설정됩니다.

로커스트가 CPU에 의해 병목 상태가 되면 출력 메시지가 나타납니다.

서비스 주체 설정

예제 Notebook 외부에서 이 작업을 수행합니다.

경로 최적화 엔드포인트와 상호 작용하려면 Locust 테스트에서 엔드포인트를 쿼리할 수 있는 권한이 있는 OAuth 토큰을 생성할 수 있어야 합니다. 다음 단계에 따라 인증을 설정합니다.

  1. Databricks 서비스 주체 만들기.
  2. 벡터 검색 엔드포인트 웹 페이지로 이동합니다. 사용 권한을 클릭하고 서비스 프린시펄에게 쿼리 가능 수준의 권한을 부여합니다.
  3. 두 개의 키를 사용하여 명명된 databricks 비밀 범위를 만드세요.
    1. Databricks 서비스 주체의 ID입니다. 예: service_principal_client_id .
    2. Databricks 서비스 주체에 대한 클라이언트 암호입니다. (예: service_principal_client_secret)
  4. 서비스 주체의 클라이언트 ID 및 클라이언트 비밀을 Databricks 비밀에 넣습니다.

노트북 설정

다음 섹션에서는 예제 Notebook 및 다운로드한 지원 파일을 설정하는 방법을 설명합니다.

변수 구성

예제 Notebook의 복사본에서 다음 매개 변수를 구성합니다.

매개 변수 설명
endpoint_name 벡터 검색 엔드포인트의 이름입니다.
locust_run_time 각 개별 부하 테스트를 실행할 기간입니다. 많은 부하 테스트가 실행되므로 5-10분의 기간이 좋은 기본값입니다.
csv_output_prefix 메뚜기 부하 테스트는 정보 및 메트릭의 CSV 파일을 출력합니다. 이 문자열은 CSV 파일 앞에 추가되는 접두사를 정의합니다.
secret_scope_name 서비스 주체 정보를 포함하는 Databricks 비밀 범위의 이름입니다.

페이로드 지정

예제 노트북과 함께 input.json 파일에 페이로드를 지정하십시오.

부하 테스트 결과의 유효성을 확인하려면 Locust 클라이언트에서 전송해야 하는 페이로드를 고려해야 합니다. 프로덕션 환경에서 보내려는 페이로드 유형을 정확하게 나타내는 페이로드를 선택합니다. 예를 들어 모델이 요청당 하나의 트랜잭션과 같이 신용 카드 트랜잭션을 실시간으로 평가하는 사기 감지 모델인 경우 페이로드가 하나의 일반적인 트랜잭션만 나타내는지 확인합니다.

페이로드 테스트

전체 input.json 데이터를 복사하여 벡터 검색 엔드포인트의 쿼리 창에 붙여넣고 모델이 원하는 출력으로 응답하도록 하여 페이로드를 테스트합니다.

엔드포인트에 대한 쿼리 상자를 열려면 다음을 수행합니다.

  1. Azure Databricks 작업 영역의 왼쪽 사이드바에서 서비스를 선택합니다.
  2. 부하 테스트에 사용할 엔드포인트를 선택합니다.
  3. 오른쪽 위 모서리의 드롭다운 사용 메뉴에서 쿼리를 선택합니다.

대기 시간의 특정 백분위수를 달성하는 데 필요한 엔드포인트 동시성은 동시 연결 수로 선형적으로 확장됩니다. 즉, 최종 테스트를 수행하기 전에 작은 엔드포인트에서 테스트하고 필요한 엔드포인트 크기를 계산할 수 있습니다.

부하 테스트 실행

엔드포인트, Notebook 및 페이로드가 구성되면 Notebook 실행을 단계별로 실행할 수 있습니다.
Notebook은 엔드포인트에 대해 30초 부하 테스트를 실행하여 엔드포인트가 온라인 상태가 되었으며 응답하고 있는지 확인합니다.

예제 Notebook에서는 다양한 양의 클라이언트 쪽 동시성을 사용하여 일련의 부하 테스트를 실행할 수 있습니다. 일련의 부하 테스트를 완료한 후 Notebook 결과에는 요청 실패 또는 예외의 내용이 표시되고 클라이언트 동시성에 대한 대기 시간 백분위수도 표시됩니다.

Notebook에는 결과 테이블이 표시되며 대기 시간 요구 사항을 가장 잘 충족하는 행을 선택하고 애플리케이션의 원하는 RPS를 입력해야 합니다. 제공하는 정보에 따라 Notebook은 RPS 및 대기 시간 목표를 충족하도록 엔드포인트 크기를 조정하는 방법을 권장합니다.

Notebook의 권장 사항과 일치하도록 엔드포인트 구성을 업데이트한 후 Notebook의 최종 부하 테스트를 실행하여 엔드포인트가 대기 시간 및 RPS 요구 사항을 모두 충족하고 있는지 확인할 수 있습니다.