Medición del rendimiento de Azure Cosmos DB for NoSQL con un marco de pruebas comparativas

Hay más opciones ahora que nunca en el tipo de base de datos que se usará con la carga de trabajo de datos. Uno de los factores clave para elegir una base de datos es el rendimiento de la base de datos o el servicio, pero el rendimiento de las pruebas comparativas puede ser complicado y propenso a errores. El marco de pruebas comparativas para bases de datos de Azure simplifica el proceso de medición del rendimiento con herramientas de pruebas comparativas de código abierto populares con recetas de baja fricción que implementan procedimientos recomendados comunes. En Azure Cosmos DB for NoSQL, el marco implementa los procedimientos recomendados para el SDK de Java y usa la herramienta YCSB de código abierto. En esta guía, usará este marco de pruebas comparativas para implementar una carga de trabajo de lectura para familiarizarse con el marco.

Prerrequisitos

Crear recursos de una cuenta de Azure Cosmos DB

En primer lugar, creará una base de datos y un contenedor en la API existente para la cuenta de NoSQL.

  1. Vaya a la cuenta de API for NoSQL en Azure Portal.

  2. En el menú de recursos, seleccione Explorador de datos.

    Captura de pantalla de la opción Data Explorer resaltada en el menú de recursos.

  3. En la página Data Explorer, seleccione la opción Nuevo contenedor en la barra de comandos.

    Captura de pantalla de la opción Nuevo contenedor en la barra de comandos Data Explorer.

  4. En el cuadro de diálogo Nuevo contenedor, cree un contenedor con la siguiente configuración:

    Configuración Value
    Id. de base de datos ycsb
    Tipo de rendimiento de la base de datos Manual
    Cantidad de rendimiento de la base de datos 400
    Id. de contenedor usertable
    Clave de partición /id

    Captura de pantalla del cuadro de diálogo Nuevo contenedor en la página Data Explorer.

Implementación del marco de pruebas comparativas en Azure

Ahora, usará una plantilla de Azure Resource Manager para implementar el marco de pruebas comparativas en Azure con la receta de lectura predeterminada.

  1. Implemente el marco de pruebas comparativas mediante una plantilla de Azure Resource Manager disponible en este vínculo.

    Botón Implementar en Azure.

  2. En la página Implementación personalizada, los parámetros siguientes

    Captura de pantalla de la página Implementación personalizada con valores de parámetros rellenados.

  3. Seleccione Revisar y crear y, a continuación, Crear para implementar la plantilla.

  4. Espere a que la implementación se complete.

    Sugerencia

    La implementación puede tardar entre 5 y 10 minutos en completarse.

Visualización de los resultados de la prueba comparativa

Ahora, puede usar la cuenta de Azure Storage existente para comprobar el estado del trabajo de prueba comparativa y ver los resultados agregados. El estado se almacena mediante una tabla de almacenamiento y los resultados se agregan a un blob de almacenamiento con el formato CSV.

  1. Vaya a la cuenta de Azure Storage existente en Azure Portal.

  2. Vaya a una tabla de almacenamiento denominada ycsbbenchmarkingmetadata y busque la entidad con una clave de partición de ycsb_sql.

    Captura de pantalla de la tabla ycsbbenchmarkingMetadata en una cuenta de almacenamiento.

  3. Observe el campo JobStatus de la entidad de tabla. Inicialmente, el estado del trabajo es Started e incluye una marca de tiempo en la propiedad JobStartTime, pero no en la propiedad JobFinishTime.

  4. Espere hasta que el trabajo tenga un estado de Finished e incluya una marca de tiempo en la propiedad JobFinishTime.

    Sugerencia

    El trabajo puede tardar aproximadamente entre 20 y 30 minutos en completarse.

  5. Vaya al contenedor de almacenamiento en la misma cuenta con un prefijo de ycsbbenchmarking-*. Observe los blobs de salida y diagnóstico de la herramienta.

    Captura de pantalla del contenedor y los blobs de salida de la herramienta de pruebas comparativas.

  6. Abra el blob aggregation.csv y observe el contenido. Ahora debería tener un conjunto de datos CSV con resultados agregados de todos los clientes de pruebas comparativas.

    Captura de pantalla del contenido del blob de resultados de agregación.

    Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond)
    READ,180000,299,706,448255,1079,1159,2867
    

Recetas

El marco de pruebas comparativas para bases de datos de Azure incluye recetas para encapsular las definiciones de carga de trabajo que se pasan a la herramienta de pruebas comparativas subyacente para una experiencia de "1 clic". Las definiciones de carga de trabajo se diseñaron en función de los procedimientos recomendados publicados por el equipo de Azure Cosmos DB y el equipo de la herramienta de pruebas comparativas. Las recetas se han probado y validado para obtener resultados coherentes.

Puede esperar ver las siguientes latencias para todas las recetas de lectura y escritura en el repositorio de GitHub.

  • Latencia de lectura

    Diagrama de la latencia de lectura típica con un promedio de 1 milisegundos a 2 milisegundos.

  • Latencia de escritura

    Diagrama de la latencia de escritura típica que promedia aproximadamente 4 milisegundos.

Problemas comunes

En esta sección se incluyen los errores comunes que pueden producirse al ejecutar la herramienta de pruebas comparativas. Los registros de errores de la herramienta suelen estar disponibles en un contenedor dentro de la cuenta de Azure Storage.

Captura de pantalla del contenedor y los blobs en una cuenta de almacenamiento.

  • Si los registros no están disponibles en la cuenta de almacenamiento, este problema suele deberse a una cadena de conexión de almacenamiento incorrecta o que falta. En este caso, este error aparece en el archivo agent.out dentro de la carpeta /home/benchmarking de la máquina virtual del cliente.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Este error aparece en el archivo agent.out tanto en la máquina virtual del cliente como en la cuenta de almacenamiento si el URI del punto de conexión de Azure Cosmos DB es incorrecto o inaccesible.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Este error aparece en el archivo agent.out tanto en la máquina virtual del cliente como en la cuenta de almacenamiento si la clave de Azure Cosmos DB es incorrecta.

    The input authorization token can't serve the request. The wrong key is being used….
    

Pasos siguientes