Partager via


Mesurer les performances d’Azure Cosmos DB pour NoSQL avec un framework de référence

Il existe plus de choix que jamais sur le type de base de données à utiliser avec votre charge de travail de données. L’un des principaux facteurs de sélection 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. Le framework d’analyse de référence pour Les bases de données Azure simplifie le processus de mesure des performances avec des outils d’évaluation open source populaires avec des recettes à faible friction qui implémentent les meilleures pratiques courantes. Dans Azure Cosmos DB pour NoSQL, l’infrastructure implémente les meilleures pratiques pour le Kit de développement logiciel (SDK) Java et utilise l’outil YCSB open source. Dans ce guide, vous utilisez cette infrastructure d’évaluation pour implémenter une charge de travail de lecture pour vous familiariser avec l’infrastructure.

Prerequisites

Créer des ressources de compte Azure Cosmos DB

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

  1. Accédez à votre compte API existante pour NoSQL dans le portail Azure.

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

    Capture d’écran de l’option Explorateur de données mise en surbrillance dans le menu des ressources.

  3. Dans la page Explorateur de données , sélectionnez l’option Nouveau conteneur dans la barre de commandes.

    Capture d’écran de l’option Nouveau conteneur dans la barre de commandes de l’Explorateur de données.

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

    Réglage Valeur
    ID de base de données ycsb
    Type de débit de base de données Manuel
    Quantité de débit de base de données 400
    ID de conteneur usertable
    Clé de partition /id

    Capture d’écran de la boîte de dialogue Nouveau conteneur dans la page Explorateur de données.

Déployer une infrastructure de référence sur Azure

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

  1. Déployez l’infrastructure de référence à l’aide d’un modèle Azure Resource Manager disponible dans 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 renseignées.

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

  4. Attendez que le déploiement se termine.

    Conseil / Astuce

    Le déploiement peut prendre 5 à 10 minutes.

Afficher les résultats du benchmark

À présent, vous pouvez utiliser le compte de stockage Azure existant pour vérifier l’état du travail de test 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 de stockage Azure existant dans 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 JobStatus champ de l’entité de table. Initialement, l’état de la tâche 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 / Astuce

    La fin du travail peut prendre environ 20 à 30 minutes.

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

    Capture d'écran des blobs de conteneur et de sortie de l'outil de benchmarking.

  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 de référence.

    Capture d’écran du contenu du blob des 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 de référence pour Les bases de données Azure inclut des recettes permettant d’encapsuler les définitions de charge de travail passées à l’outil de référence 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 de l’équipe de l’outil d’évaluation. Les recettes ont été testées et validées pour obtenir des résultats cohérents.

Vous pouvez vous attendre à voir 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 moyenne d’environ 1 milliseconde à 2 millisecondes.

  • Latence d’écriture

    Diagramme de la latence d’écriture classique en moyenne 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 dans le compte de stockage Azure.

Capture d'écran de conteneur et des blobs dans un compte de stockage.

  • Si les journaux d’activité 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/benchmark 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 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 le compte de stockage si la clé Azure Cosmos DB est incorrecte.

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

Étapes suivantes