Mesurer les performances d’Azure Cosmos DB for NoSQL avec un framework d’évaluation

Le choix de type de base de données à utiliser avec votre charge de travail de données n’a jamais été aussi grand. L’un des facteurs clés du choix d’une base de données est les performances de la base de données ou du service, mais les performances d’évaluation peuvent être fastidieuses et sujettes aux erreurs. L’infrastructure d’évaluation des bases de données Azure simplifie le processus de mesure des performances à l’aide d’outils d’évaluation en open source populaires avec des recettes à faible friction qui implémentent les meilleures pratiques courantes. Dans Azure Cosmos DB for NoSQL, l’infrastructure implémente les meilleures pratiques pour le kit de développement logiciel (SDK) Java et utilise l’outil YCSB en open source. Dans ce guide, vous utilisez cette infrastructure d’évaluation pour implémenter une charge de travail de lecture afin de vous familiariser avec l’infrastructure.

Prérequis

Créer des ressources de compte Azure Cosmos DB

Tout d’abord, vous créez une base de données et un conteneur dans le compte d’API pour NoSQL existant.

  1. Accédez à votre compte API for NoSQL sur le Portail Azure.

  2. Dans le menu de la ressource, sélectionnez Explorateur de données.

    Capture d’écran de l’option Data Explorer encadrée dans le menu des ressources

  3. Sur la page Data Explorer, sélectionnez l’option Nouveau conteneur dans la barre de commandes.

    Capture d’écran de l’option Nouvelle requête SQL dans la barre de commandes Data Explorer

  4. Dans la boîte de dialogue Nouveau conteneur, créez un conteneur en indiquant les paramètres suivants :

    Paramètre Valeur
    ID de base de données ycsb
    Type de débit de la base de données Manuel
    Valeur du débit de la base de données 400
    ID de conteneur usertable
    Clé de partition /id

    Capture d’écran de la boîte de dialogue Nouveau conteneur sur la page Data Explorer.

Déployer l’infrastructure d’analyse comparative sur Azure

À présent, vous utilisez un modèle Azure Resource Manager pour déployer l’infrastructure d’évaluation sur Azure avec la recette de lecture par défaut.

  1. Déployez l’infrastructure d’évaluation à l’aide d’un modèle Azure Resource Manager disponible via ce lien.

    Bouton Déployer sur Azure.

  2. Dans la page Déploiement personnalisé, les paramètres suivants

    Capture d’écran de la page Déploiement personnalisé avec les valeurs de paramètres remplies.

  3. Sélectionnez Vérifier + créer, puis Créer pour déployer le modèle.

  4. Attendez la fin du déploiement.

    Conseil

    Le déploiement peut prendre de 5 à 10 minutes.

Afficher les résultats de l’évaluation

À présent, vous pouvez utiliser le compte stockage Azure existant pour vérifier l’état du travail d’évaluation et afficher les résultats agrégés. L’état est stocké à l’aide d’une table de stockage et les résultats sont agrégés dans un objet blob de stockage au format CSV.

  1. Accédez à votre compte Stockage Azure existant sur le Portail Azure.

  2. Accédez à une table de stockage nommée ycsbbenchmarkingmetadata et recherchez l’entité avec une clé de partition de ycsb_sql.

    Capture d’écran de la table ycsbbenchmarkingMetadata dans un compte de stockage.

  3. Observez le champ JobStatus de l’entité de table. Initialement, l’état du travail est Started et inclut un horodatage dans la propriété JobStartTime, mais pas dans la propriété JobFinishTime.

  4. Attendez que le travail soit en l’état Finished et qu’il inclut un horodatage dans la propriété JobFinishTime.

    Conseil

    La fin du travail peut prendre 20 à 30 minutes.

  5. Accédez au conteneur de stockage dans le même compte avec le préfixe ycsbbenchmarking-*. Observez les objets blob de sortie et de diagnostic pour l’outil.

    Capture d’écran des objets blob de conteneur et de sortie de l’outil d’évaluation.

  6. Ouvrez l’objet blob aggregation.csv et observez le contenu. Vous devez maintenant disposer d’un jeu de données CSV avec des résultats agrégés de tous les clients d’évaluation.

    Capture d’écran du contenu de l’objet blob de résultats d’agrégation.

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

Recettes

L’infrastructure d’évaluation des bases de données Azure comprend des recettes permettant d’encapsuler les définitions de charge de travail qui sont passées à l’outil d’évaluation sous-jacent pour une expérience « 1 clic ». Les définitions de charge de travail ont été conçues en fonction des meilleures pratiques publiées par l’équipe Azure Cosmos DB et l’équipe de l’outil d’évaluation. Les recettes ont été testées et validées pour obtenir des résultats cohérents.

Attendez-vous à rencontrer les latences suivantes pour toutes les recettes de lecture et d’écriture dans le dépôt GitHub.

  • Latence de lecture

    Diagramme de la latence de lecture classique de 1 à 2 millisecondes.

  • Latence d’écriture

    Diagramme de la latence d’écriture classique d’environ 4 millisecondes.

Problèmes courants

Cette section inclut les erreurs courantes qui peuvent se produire lors de l’exécution de l’outil d’évaluation. Les journaux d’erreur de l’outil sont généralement disponibles dans un conteneur au sein du compte de stockage Azure.

Capture d’écran du conteneur et des objets blob dans un compte de stockage.

  • Si les journaux ne sont pas disponibles dans le compte de stockage, ce problème est généralement dû à une chaîne de connexion de stockage incorrecte ou manquante. Dans ce cas, cette erreur est répertoriée dans le fichier agent.out dans le dossier /home/benchmarking de la machine virtuelle cliente.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Cette erreur est répertoriée dans le fichier agent.out, à la fois dans la machine virtuelle cliente et dans le compte de stockage si l’URI du point de terminaison Azure Cosmos DB est incorrect ou inaccessible.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Cette erreur est répertoriée dans le fichier agent.out, à la fois dans la machine virtuelle cliente et dans le compte de stockage si l’URI de la clé Azure Cosmos DB est incorrecte.

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

Étapes suivantes