Prestaties van Azure Cosmos DB for NoSQL meten met een benchmarking-framework
Er zijn nu meer opties dan ooit, met betrekking tot het type database dat moet worden gebruikt met uw gegevensworkload. Een van de belangrijkste factoren voor het kiezen van een database zijn de prestaties van de database of service, maar benchmarkprestaties kunnen omslachtig en foutgevoelig zijn. Het benchmarkframework voor Azure Databases vereenvoudigt het proces van het meten van prestaties met populaire opensource-benchmarkinghulpprogramma's met recepten met lage wrijving die algemene best practices implementeren. In Azure Cosmos DB for NoSQL implementeert het framework best practices voor de Java SDK en maakt het gebruik van het opensource-hulpprogramma YCSB . In deze handleiding gebruikt u dit benchmarkframework om een leesworkload te implementeren om vertrouwd te raken met het framework.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Azure Cosmos DB voor NoSQL-account. Maak een API voor NoSQL-account.
- Noteer de eindpunt-URI en primaire sleutel voor het account. API voor primaire NoSQL-sleutels.
- Azure-opslagaccount. Maak een Azure Storage-account.
- Noteer de connection string voor het opslagaccount. Azure Storage-connection string.
- Tweede lege resourcegroep. Maak een resourcegroep.
- Azure Command-Line Interface (CLI).
Azure Cosmos DB-accountresources maken
Eerst maakt u een database en container in de bestaande API voor NoSQL-account.
Navigeer naar uw bestaande API voor NoSQL-account in de Azure Portal.
Selecteer Data Explorer in het resourcemenu.
Selecteer op de pagina Data Explorer de optie Nieuwe container in de opdrachtbalk.
Maak in het dialoogvenster Nieuwe container een nieuwe container met de volgende instellingen:
Instelling Waarde Database-id ycsb
Type databasedoorvoer Handmatig Hoeveelheid databasedoorvoer 400
Container-id usertable
Partitiesleutel /id
Benchmarking-framework implementeren in Azure
Nu gebruikt u een Azure Resource Manager-sjabloon om het benchmarkframework te implementeren in Azure met het standaard leesrecept.
Implementeer het benchmarkframework met behulp van een Azure Resource Manager-sjabloon die beschikbaar is via deze koppeling.
Op de pagina Aangepaste implementatie ziet u de volgende parameters
Selecteer Beoordelen en maken en vervolgens Maken om de sjabloon te implementeren.
Wacht totdat de installatie is voltooid.
Tip
De implementatie kan 5-10 minuten duren.
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 te bekijken. De status wordt opgeslagen met behulp van een opslagtabel en de resultaten worden geaggregeerd in een opslagblob met behulp van de CSV-indeling.
Navigeer naar uw bestaande Azure Storage-account in de Azure Portal.
Navigeer naar een opslagtabel met de naam ycsbbenchmarkingmetadata en zoek de entiteit met een partitiesleutel van
ycsb_sql
.Bekijk het
JobStatus
veld van de tabelentiteit. In eerste instantie isStarted
de status van de taak en bevat deze een tijdstempel in deJobStartTime
eigenschap, maar niet deJobFinishTime
eigenschap.Wacht totdat de taak de status heeft en
Finished
een tijdstempel bevat in deJobFinishTime
eigenschap.Tip
Het kan ongeveer 20-30 minuten duren voordat de taak is voltooid.
Navigeer naar de opslagcontainer in hetzelfde account met het voorvoegsel ycsbbenchmarking-*. Bekijk de uitvoer- en diagnostische blobs voor het hulpprogramma.
Open de aggregation.csv-blob en bekijk de inhoud. U hebt nu een CSV-gegevensset met geaggregeerde resultaten van alle benchmarkclients.
Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond) READ,180000,299,706,448255,1079,1159,2867
Recepten
Het benchmarkframework voor Azure Databases bevat recepten voor het inkapselen van de workloaddefinities die worden doorgegeven aan het onderliggende benchmarking-hulpprogramma 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 benchmarkprogramma. De recepten zijn getest en gevalideerd voor consistente resultaten.
U kunt de volgende latenties verwachten voor alle lees- en schrijfrecepten in de GitHub-opslagplaats.
Algemene problemen
Deze sectie bevat de veelvoorkomende fouten die kunnen optreden bij het uitvoeren van het hulpprogramma voor benchmarking. De foutenlogboeken voor het hulpprogramma zijn doorgaans beschikbaar in een container in het Azure Storage-account.
Als de logboeken niet beschikbaar zijn in het opslagaccount, wordt dit probleem meestal veroorzaakt door een onjuiste of ontbrekende opslag connection string. In dit geval wordt deze fout vermeld in het agent.out-bestand 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 agent.out-bestand , zowel in de client-VM als in 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 agent.out-bestand , zowel in de client-VM als in 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 hulpprogramma voor benchmarking vindt u in de handleiding voor Aan de slag.