Mäta Azure Cosmos DB för NoSQL-prestanda med ett benchmarking-ramverk
Det finns fler alternativ än någonsin för vilken typ av databas som ska användas med din dataarbetsbelastning. En av de viktigaste faktorerna för att välja en databas är databasens eller tjänstens prestanda, men prestandamått kan vara besvärliga och felbenägna. Benchmarking-ramverket för Azure Databases förenklar processen för att mäta prestanda med populära benchmarkingverktyg med öppen källkod med recept med låg friktion som implementerar vanliga metodtips. I Azure Cosmos DB for NoSQL implementerar ramverket metodtips för Java SDK och använder YCSB-verktyget med öppen källkod. I den här guiden använder du det här benchmarking-ramverket för att implementera en läsarbetsbelastning för att bekanta dig med ramverket.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Azure Cosmos DB för NoSQL-konto. Skapa ett API för NoSQL-konto.
- Se till att du noterar slutpunkts-URI:n och primärnyckeln för kontot.
- Azure Storage-konto. Skapa ett Azure Storage-konto.
- Anteckna anslutningssträng för lagringskontot. Vies Azure Storage-anslutningssträng.
- Andra tomma resursgruppen. Skapa en resursgrupp.
- Azure-kommandoradsgränssnitt (CLI).
Skapa Azure Cosmos DB-kontoresurser
Först skapar du en databas och container i det befintliga API:et för NoSQL-kontot.
Gå till ditt befintliga API för NoSQL-konto i Azure Portal.
I resursmenyn väljer du Datautforskaren.
På sidan Datautforskaren väljer du alternativet Ny container i kommandofältet.
I dialogrutan Ny container skapar du en ny container med följande inställningar:
Inställning Värde Databas-ID ycsb
Databasdataflödestyp Manuell Databasdataflödesbelopp 400
Container-ID usertable
Partitionsnyckel /id
Distribuera ramverk för benchmarking till Azure
Nu använder du en Azure Resource Manager-mall för att distribuera benchmarking-ramverket till Azure med standardreceptet för läsning.
Distribuera benchmarking-ramverket med hjälp av en Azure Resource Manager-mall som är tillgänglig på den här länken.
På sidan Anpassad distribution följer följande parametrar
Välj Granska + skapa och sedan Skapa för att distribuera mallen.
Vänta tills distributionen har slutförts.
Dricks
Distributionen kan ta 5–10 minuter att slutföra.
Visa resultat av riktmärket
Nu kan du använda det befintliga Azure Storage-kontot för att kontrollera statusen för benchmark-jobbet och visa de aggregerade resultaten. Statusen lagras med hjälp av en lagringstabell och resultatet aggregeras till en lagringsblob med hjälp av CSV-formatet.
Gå till ditt befintliga Azure Storage-konto i Azure Portal.
Navigera till en lagringstabell med namnet ycsbbenchmarkingmetadata och leta upp entiteten med partitionsnyckeln
ycsb_sql
.Observera fältet för
JobStatus
tabellentiteten. Inledningsvis ärStarted
statusen för jobbet och den innehåller en tidsstämpel iJobStartTime
egenskapen men inte egenskapenJobFinishTime
.Vänta tills jobbet har statusen
Finished
och innehåller en tidsstämpel i egenskapenJobFinishTime
.Dricks
Det kan ta cirka 20–30 minuter för jobbet att slutföras.
Navigera till lagringscontainern i samma konto med prefixet ycsbbenchmarking-*. Observera utdata och diagnostikblobar för verktyget.
Öppna aggregation.csv blob och observera innehållet. Nu bör du ha en CSV-datauppsättning med aggregerade resultat från alla benchmark-klienter.
Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond) READ,180000,299,706,448255,1079,1159,2867
Recept
Benchmarking-ramverket för Azure Databases innehåller recept för att kapsla in de arbetsbelastningsdefinitioner som skickas till det underliggande benchmarking-verktyget för en "1-Klick"-upplevelse. Arbetsbelastningsdefinitionerna utformades baserat på metodtips som publicerats av Azure Cosmos DB-teamet och benchmarkingverktygets team. Recepten har testats och verifierats för konsekventa resultat.
Du kan förvänta dig att se följande svarstider för alla läs- och skrivrecept på GitHub-lagringsplatsen.
Vanliga problem
Det här avsnittet innehåller vanliga fel som kan uppstå när du kör benchmarking-verktyget. Felloggarna för verktyget är vanligtvis tillgängliga i en container i Azure Storage-kontot.
Om loggarna inte är tillgängliga i lagringskontot orsakas det här problemet vanligtvis av en felaktig eller saknad lagring anslutningssträng. I det här fallet visas det här felet i filen agent.out i mappen /home/benchmarking på den virtuella klientdatorn.
Error while accessing storage account, exiting from this machine in agent.out on the VM
Det här felet visas i filen agent.out både på den virtuella klientdatorn och lagringskontot om Azure Cosmos DB-slutpunkts-URI:n är felaktig eller inte går att nå.
Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known
Det här felet visas i filen agent.out både på den virtuella klientdatorn och lagringskontot om Azure Cosmos DB-nyckeln är felaktig.
The input authorization token can't serve the request. The wrong key is being used….
Nästa steg
- Läs mer om benchmarking-verktyget med Komma igång guide.