For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/databases/mongodb-benchmark.md.

Benchmark Public Cloud Databases pour MongoDB

Voir en Markdown

Évaluer les performances d'instances MongoDB

Objectif

Ce guide a pour but de fournir une approche détaillée, étape par étape, du benchmark et du dimensionnement de votre cluster MongoDB OVHcloud en fonction de charges spécifiques. Il couvre l'estimation des besoins en ressources, la configuration du cluster, et l'utilisation d'outils tels que YCSB et SimRunner pour les tests de performance. En suivant ce guide, vous pourrez mesurer le débit et la latence, et prendre des décisions éclairées quant à l'offre OVHcloud adaptée aux besoins de votre application, garantissant des performances et une évolutivité optimales.

Configuration des outils de benchmark

YCSB (Yahoo! Cloud Serving Benchmark)

YCSB est un framework permettant d'évaluer et de comparer les performances de diverses bases de données. Il prend en charge un large éventail de charges de travail et fournit une méthode standardisée pour mesurer le débit et la latence.

  • Consultez le README pour installer YCSB.
  • Reportez-vous au README MongoDB pour exécuter YCSB sur MongoDB.

SimRunner

SimRunner est un outil qui associe :

  • un générateur de données puissant pour MongoDB ;
  • un générateur de charge de travail déclaratif et hautement évolutif.

Installez SimRunner et configurez-le pour simuler la charge en fonction des métriques actuelles de votre base de données, puis créez un fichier de configuration pour SimRunner reproduisant votre charge de travail actuelle.

Processus de benchmark avec YCSB et SimRunner

Warning

Avec la version 0.17.0 de YCSB, assurez-vous d'avoir Python 2 installé, car YCSB rencontrera des erreurs si Python 3 est utilisé.

Étape 1 : configurer un cluster MongoDB OVHcloud

  • Configurez le cluster MongoDB OVHcloud. Veillez à sélectionner une offre disposant de caractéristiques matérielles similaires à celles des autres bases de données avec lesquelles vous souhaitez effectuer le benchmark.

Étape 2 : déterminer le nœud principal du cluster MongoDB

  1. Connectez-vous au cluster MongoDB avec le mongoshell, puis exécutez la commande rs.status().
  2. Recherchez l'élément dont members.stateStr vaut 'PRIMARY'.
  3. Notez la valeur du champ members.name pour cet élément. Par ex. name: 'node2-0b70a1b78fff6c0e-admin.database.cloud.ovh.net:27017'. Vous l'utiliserez à l'ÉTAPE 4 pour charger et exécuter YCSB.

Étape 3 : configurer la charge de travail YCSB

YCSB fournit des charges de travail préconfigurées dans le dossier ycsb-0.17.0 > workloads. Vous pouvez configurer votre propre charge de travail en fonction du comportement de votre application.

Info

Consultez YCSB Core Properties pour la liste des propriétés de charge de travail disponibles.

Voici un exemple de charge de travail :

# Unless required by applicable law or agreed to in writing, software                                                                                                             
# distributed under the License is distributed on an "AS IS" BASIS,                                                                                                               
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or                                                                                                                 
# implied. See the License for the specific language governing                                                                                                                    
# permissions and limitations under the License. See accompanying                                                                                                                 
# LICENSE file.                                                                                                                                                                   


# Yahoo! Cloud System Benchmark
# Workload A: Update heavy workload
#   Application example: Session store recording recent actions
#                        
#   Read/update ratio: 50/50
#   Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
#   Request distribution: zipfian

recordcount=1000
operationcount=1000
workload=site.ycsb.workloads.CoreWorkload

readallfields=true

readproportion=0.5
updateproportion=0.5
scanproportion=0
insertproportion=0

requestdistribution=zipfian

Étape 4 : charger des données dans MongoDB avec YCSB - Exemple avec le workloada fourni

Info

Pour plus de détails sur l'exécution d'une charge de travail, consultez YCSB Run a Workload.

Depuis le répertoire ycsb-0.17.0, exécutez la commande suivante avec le workloada fourni pour charger des données dans MongoDB.

./bin/ycsb load mongodb -p mongodb.url="mongodb://myuser:mypassword@node2-0b70a1b78fff6c0e.database.cloud.ovh.net:27017/admin?replicaSet=replicaset&ssl=true" -s -P workloads/workloada

Chargement YCSB

Vérifiez que la base de données ycsb et la collection usertable ont bien été créées et chargées avec les données.

Étape 5 : exécuter la charge de travail YCSB - Exemple avec le workloada fourni

Depuis le répertoire YCSB > ycsb-0.17.0, exécutez la commande suivante avec le workloada fourni pour exécuter la charge de travail.

./bin/ycsb run mongodb -p mongodb.url="mongodb://myuser:mypassword@node2-0b70a1b78fff6c0e.database.cloud.ovh.net:27017/admin?replicaSet=replicaset&ssl=true" -s -P workloads/workloada

Exécution YCSB

Étape 6 : analyser et évaluer les métriques de sortie de YCSB

Notez le résultat de la commande d'exécution de l'étape 5, et comparez-le avec d'autres bases de données.

Tests de performance avec SimRunner

Étape 1 : sélectionner l'offre OVHcloud

Maintenant que vous avez choisi MongoDB comme base de données, il est temps de configurer le cluster approprié.

  • En fonction des métriques collectées (CPU, RAM, IOPS disque, espace disque, etc.), choisissez une offre OVHcloud répondant aux besoins de votre application.
  • Tenez compte de la croissance future et des besoins en évolutivité. Vous pourriez envisager de consulter le guide sur le dimensionnement d'un cluster MongoDB.

Étape 2 : configurer le cluster OVHcloud

Étape 3 : tests de performance avec SimRunner

  • Consultez le README pour installer et exécuter SimRunner.
  • Exécutez des tests de performance à l'aide de SimRunner sur votre cluster MongoDB : java -jar SimRunner.jar <config file>. Voici un exemple de fichier de configuration :
{
    "connectionString": "mongodb+srv://myuser:mypassword@mongodb-8fff6c0e-o01ba0bef.database.cloud.ovh.net/admin?replicaSet=replicaset&ssl=true",
    "reportInterval": 1000,
    "http": {
        "enabled": false,
        "port": 3000,
        "host": "localhost"
    },
    "mongoReporter": {
        "enabled": true,
        "connectionString": "mongodb://localhost:27017",
        "database": "simrunner",
        "collection": "report",
        "drop": false,
        "runtimeSuffix": false
    },
    "templates": [
        {
            "name": "person",
            "database": "test",
            "collection": "people",
            "drop": false,
            "template": {
                "_id": "%objectid",
                "first": "%name.firstName",
                "last": "%name.lastName",
                "birthday": "%date.birthday"
            },
            "remember": ["_id", { "field": "first", "preload": false}],
            "indexes": []
        }
    ],
    "workloads": [
        {
            "name": "Insert some people",
            "template": "person",
            "op": "insert",
            "threads": 1,
            "pace": 100,
            "batch": 1000
        },
        {
            "name": "Find people by key",
            "template": "person",
            "op": "find",
            "params": {
                "filter": { "_id": "#_id" }
            },
            "threads": 4
        }
    ]
}

Exécution SimRunner

  • La sortie du rapport, mongoReporter, de l'exécution a été configurée pour être stockée sur l'instance MongoDB exécutée localement : "connectionString": "mongodb://localhost:27017"

Sortie SimRunner

Étape 4 : validation

  • Surveillez les performances et ajustez la taille et la configuration du cluster selon les besoins de l'application.
  • Vérifiez que votre application se comporte comme prévu avec MongoDB.

Nous voulons vos retours !

Nous serions ravis de répondre à vos questions et apprécions tout retour que vous pourriez nous faire.

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Rejoignez notre communauté d'utilisateurs.

Vous êtes sur Discord ? Rejoignez notre chaîne via https://discord.gg/ovhcloud et interagissez directement avec l’équipe qui développe notre service de bases de données !

Cette page vous a-t-elle aidé ?