Delen via


Azure Cosmos DB voor NoSQL-prestaties meten met een benchmarking-framework

Er zijn nu meer keuzes voor het type database dat u met uw gegevensworkload kunt gebruiken. Een van de belangrijkste factoren voor het kiezen van een database is de prestaties van de database of service, maar benchmarkingprestaties kunnen omslachtig en foutgevoelig zijn. Het benchmarkingframework voor Azure Databases vereenvoudigt het proces van het meten van prestaties met populaire opensource-benchmarkinghulpprogramma's met recepten met lage wrijving die algemene aanbevolen procedures implementeren. In Azure Cosmos DB for NoSQL implementeert het framework best practices voor de Java SDK en maakt gebruik van het opensource-hulpprogramma YCSB . In deze handleiding gebruikt u dit benchmarkingframework om een leesworkload te implementeren om vertrouwd te raken met het framework.

Vereisten

Azure Cosmos DB-accountbronnen maken

Eerst maakt u een database en container in het bestaande API voor NoSQL-account.

  1. Navigeer naar uw bestaande API voor NoSQL-account in Azure Portal.

  2. Selecteer Data Explorer in het resourcemenu.

    Schermopname van de optie Data Explorer gemarkeerd in het resourcemenu.

  3. Selecteer op de pagina Data Explorer de optie Nieuwe container in de opdrachtbalk.

    Schermopname van de optie Nieuwe container op de opdrachtbalk van Data Explorer.

  4. Maak in het dialoogvenster Nieuwe container een nieuwe container met de volgende instellingen:

    Instelling Weergegeven als
    Database-id ycsb
    Type databasedoorvoer Handmatig
    Hoeveelheid databasedoorvoer 400
    Container-id usertable
    Partitiesleutel /id

    Schermopname van het dialoogvenster Nieuwe container op de pagina Data Explorer.

Benchmarking-framework implementeren in Azure

U gebruikt nu een Azure Resource Manager-sjabloon om het benchmarkingframework in Azure te implementeren met het standaard leesrecept.

  1. Implementeer het benchmarking-framework met behulp van een Azure Resource Manager-sjabloon die beschikbaar is via deze koppeling.

    De knop Implementeren in Azure.

  2. Op de pagina Aangepaste implementatie zijn de volgende parameters

    Schermopname van de pagina Aangepaste implementatie met ingevulde parameters.

  3. Selecteer Beoordelen en maken en vervolgens Maken om de sjabloon te implementeren.

  4. Wacht totdat de installatie is voltooid.

    Tip

    Het kan 5-10 minuten duren voordat de implementatie is voltooid.

Resultaten van de benchmark weergeven

U kunt nu het bestaande Azure Storage-account gebruiken om de status van de benchmarktaak te controleren en de geaggregeerde resultaten weer te geven. De status wordt opgeslagen met behulp van een opslagtabel en de resultaten worden samengevoegd in een opslagblob met behulp van de CSV-indeling.

  1. Navigeer naar uw bestaande Azure Storage-account in Azure Portal.

  2. Navigeer naar een opslagtabel met de naam ycsbbenchmarkingmetadata en zoek de entiteit met een partitiesleutel van ycsb_sql.

    Schermopname van de tabel ycsbbenchmarkingMetadata in een opslagaccount.

  3. Bekijk het JobStatus veld van de tabelentiteit. In eerste instantie is Started de status van de taak en bevat deze een tijdstempel in de JobStartTime eigenschap, maar niet de JobFinishTime eigenschap.

  4. Wacht totdat de taak de status heeft en Finished een tijdstempel bevat in de JobFinishTime eigenschap.

    Tip

    Het kan ongeveer 20-30 minuten duren voordat de taak is voltooid.

  5. Navigeer naar de opslagcontainer in hetzelfde account met het voorvoegsel ycsbbenchmarking-*. Bekijk de uitvoer- en diagnostische blobs voor het hulpprogramma.

    Schermopname van de container en uitvoer-blobs uit het hulpprogramma benchmarking.

  6. Open de aggregation.csv blob en bekijk de inhoud. U hebt nu een CSV-gegevensset met geaggregeerde resultaten van alle benchmarkclients.

    Schermopname van de inhoud van de blob met aggregatieresultaten.

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

Recepten

Het benchmarkingframework voor Azure Databases bevat recepten voor het inkapselen van de workloaddefinities die worden doorgegeven aan het onderliggende benchmarkinghulpprogramma voor een '1-Klik'-ervaring. De workloaddefinities zijn ontworpen op basis van de best practices die zijn gepubliceerd door het Azure Cosmos DB-team en het team van het benchmarkinghulpprogramma. De recepten zijn getest en gevalideerd voor consistente resultaten.

U kunt de volgende latenties verwachten voor alle lees- en schrijfrecepten in de GitHub-opslagplaats.

  • Leeslatentie

    Diagram van de gemiddelde leeslatentie van ongeveer 1 milliseconden tot 2 milliseconden.

  • Schrijflatentie

    Diagram van de typische schrijflatentie met een gemiddelde van ongeveer 4 milliseconden.

Algemene problemen

Deze sectie bevat de veelvoorkomende fouten die kunnen optreden bij het uitvoeren van het benchmarking-hulpprogramma. De foutenlogboeken voor het hulpprogramma zijn doorgaans beschikbaar in een container binnen het Azure Storage-account.

Schermopname van container en blobs in een opslagaccount.

  • Als de logboeken niet beschikbaar zijn in het opslagaccount, wordt dit probleem meestal veroorzaakt door een onjuiste of ontbrekende opslag verbindingsreeks. In dit geval wordt deze fout vermeld in het bestand agent.out in de map /home/benchmarking van de virtuele clientmachine.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Deze fout wordt vermeld in het bestand agent.out , zowel in de client-VM als het opslagaccount als de Azure Cosmos DB-eindpunt-URI onjuist of onbereikbaar is.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Deze fout wordt vermeld in het bestand agent.out , zowel in de client-VM als het opslagaccount als de Azure Cosmos DB-sleutel onjuist is.

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

Volgende stappen

  • Meer informatie over het benchmarkprogramma met de handleiding Aan de slag.