Compartir a través de


Configurar una prueba de carga para endpoints de búsqueda vectorial

En esta página se proporciona un cuaderno de ejemplo para pruebas de carga y se tratan los requisitos de configuración, la autenticación, la configuración del clúster y las instrucciones paso a paso para ejecutar pruebas de carga para optimizar el rendimiento del punto de conexión de búsqueda vectorial.

Para obtener más información sobre las pruebas de carga y los conceptos relacionados, consulte Pruebas de carga para puntos de conexión de servicio.

Requisitos

Descargue e importe una copia de los siguientes archivos y cuadernos de ejemplo en el área de trabajo de Azure Databricks:

  • input.json. Este archivo especifica la carga que envían todas las conexiones simultáneas al punto de conexión. Si está probando un punto de conexión que es sensible al tamaño de la carga, compruebe que la carga de entrada refleja cómo espera que se use el punto de conexión. Consulte Prueba de la carga útil.
  • fast_vs_load_test_async_load.py. El cuaderno de ejemplo usa este script para validar el token de autenticación y leer el contenido del input.json archivo.

Cuaderno de pruebas de carga con Locust

Obtener el cuaderno

Para obtener el mejor rendimiento, seleccione un gran número de núcleos y gran cantidad de memoria para los trabajadores del clúster que use para ejecutar el notebook.

Langosta

Locust es un marco de código abierto para pruebas de carga que se usa normalmente para evaluar los puntos finales de entorno de producción. El marco Locust le permite modificar varios parámetros, como el número de conexiones de cliente y la rapidez con la que se generan las conexiones de cliente, al medir el rendimiento del punto de conexión durante toda la prueba. Locust se usa para todo el código de ejemplo a medida que normaliza y automatiza el enfoque.

Locust se basa en los recursos de CPU para ejecutar sus pruebas. En función de la carga, esto facilita aproximadamente 4000 solicitudes por segundo por núcleo de CPU. En el notebook de ejemplo, el --processes -1 indicador se establece para permitir que Locust detecte automáticamente el número de núcleos de CPU en el controlador y los use por completo.

Si Locust tiene un cuello de botella en la CPU, aparece un mensaje de error.

Configuración de la entidad de servicio

Haga esto fuera del cuaderno de ejemplo.

Para interactuar con el endpoint optimizado para rutas, la prueba Locust debe poder generar tokens OAuth con permisos para consultar el endpoint. Siga estos pasos para configurar la autenticación:

  1. Cree un principal de servicio de Databricks.
  2. Acceda a la página web del punto final de búsqueda vectorial. Haga clic en Permisos y otorgue a la aplicación de servicio permisos de consulta.
  3. Cree un ámbito de secreto de Databricks denominado con dos claves:
    1. Identificador de la entidad de servicio de Databricks. Por ejemplo: service_principal_client_id .
    2. Secreto de cliente para la entidad de servicio de Databricks. Por ejemplo, service_principal_client_secret.
  4. Coloque el identificador de cliente y el secreto de cliente de la entidad de servicio en un secreto de Databricks.

Configuración del cuaderno

En las secciones siguientes se describe cómo configurar el cuaderno de ejemplo y los archivos auxiliares que descargó.

Configuración de variables

En la copia del cuaderno de ejemplo, configure los parámetros siguientes:

Parámetro Descripciones
endpoint_name Nombre del punto de conexión de búsqueda vectorial.
locust_run_time Tiempo durante el que se ejecuta cada prueba de carga individual. Se ejecutan muchas pruebas de carga, por lo que una duración de 5 a 10 minutos es un buen valor predeterminado.
csv_output_prefix Las pruebas de carga de Locust generan archivos CSV de información y métricas. Esta cadena define un prefijo que se añade al inicio de los archivos CSV.
secret_scope_name Nombre del ámbito del secreto de Databricks que contiene la información de la entidad de servicio.

Especificar una carga

Especifique su carga útil en el archivo input.json junto con el cuaderno de ejemplo.

Para comprobar la validez de los resultados de la prueba de carga, es importante tener en cuenta la carga útil que deben enviar los Clientes Locust. Elija una carga que represente con precisión el tipo de carga que planea enviar en producción. Por ejemplo, si el modelo es un modelo de detección de fraudes que evalúa las transacciones de tarjetas de crédito en tiempo real, como una transacción por solicitud, compruebe que la carga solo representa una transacción típica.

Prueba de la carga útil

Pruebe la carga copiando y pegando los datos completos input.json en la ventana Consulta del endpoint de búsqueda vectorial y asegúrese de que su modelo esté respondiendo con las salidas deseadas.

Para abrir el cuadro Consulta del punto de conexión:

  1. En la barra lateral izquierda del área de trabajo de Azure Databricks, seleccione Servicio.
  2. Seleccione el punto de conexión que se va a usar para las pruebas de carga.
  3. En la esquina superior derecha, en el menú desplegable Usar , seleccione Consulta.

La concurrencia de puntos finales requerida para alcanzar cierto percentil de latencia aumenta linealmente con el número de conexiones simultáneas. Esto significa que puede probar en un punto de conexión pequeño y calcular el tamaño del punto de conexión que necesita antes de realizar una prueba final.

Ejecutar la prueba de carga

Una vez configurado el punto de conexión, los cuadernos y la carga, puede empezar a recorrer paso a paso la ejecución del cuaderno.
El notebook realiza una prueba de carga de 30 segundos contra el punto de conexión para confirmar que está en línea y responde.

En el cuaderno de ejemplo, puede ejecutar una serie de pruebas de carga utilizando diferentes niveles de concurrencia en el lado del cliente. Después de completar la serie de pruebas de carga, los resultados del notebook muestran el contenido de errores o excepciones de las solicitudes y también presentan un gráfico de percentiles de latencia frente a la concurrencia de clientes.

El cuaderno muestra una tabla de resultados y debe seleccionar la fila que mejor cumpla los requisitos de latencia y escribir el RPS deseado de la aplicación. En función de la información que proporcione, el cuaderno recomienda cómo ajustar el tamaño del punto de conexión para cumplir los objetivos de RPS y latencia.

Después de actualizar la configuración del punto de conexión para que coincida con las recomendaciones del cuaderno, puede ejecutar la prueba de carga final del cuaderno para confirmar que el punto de conexión cumple los requisitos de latencia y RPS.