Mäta Prestanda för Azure Cosmos DB för NoSQL med ett ramverk för benchmarking

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 prestanda för benchmarking kan vara besvärligt och felbenäget. 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 för 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

Skapa Azure Cosmos DB-kontoresurser

Först skapar du en databas och container i det befintliga API:et för NoSQL-kontot.

  1. Gå till ditt befintliga API för NoSQL-konto i Azure Portal.

  2. I resursmenyn väljer du Data Explorer.

    Skärmbild av alternativet Data Explorer markerat på resursmenyn.

  3. På sidan Data Explorer väljer du alternativet Ny container i kommandofältet.

    Skärmbild av alternativet Ny container i kommandofältet Data Explorer.

  4. I dialogrutan Ny container skapar du en ny container med följande inställningar:

    Inställningen Värde
    Databas-ID ycsb
    Databasdataflödestyp Manuell
    Databasdataflödesmängd 400
    Container-ID usertable
    Partitionsnyckel /id

    Skärmbild av dialogrutan Ny container på sidan Data Explorer.

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.

  1. Distribuera benchmarking-ramverket med hjälp av en Azure Resource Manager-mall som är tillgänglig på den här länken.

    Knappen Distribuera till Azure.

  2. På sidan Anpassad distribution visas följande parametrar

    Skärmbild av sidan Anpassad distribution med parametervärden ifyllda.

  3. Välj Granska + skapa och sedan Skapa för att distribuera mallen.

  4. Vänta tills distributionen har slutförts.

    Tips

    Distributionen kan ta 5–10 minuter att slutföra.

Visa resultat av benchmark

Nu kan du använda det befintliga Azure Storage-kontot för att kontrollera status för benchmark-jobbet och visa de aggregerade resultaten. Statusen lagras med hjälp av en lagringstabell och resultaten aggregeras till en lagringsblob med CSV-format.

  1. Gå till ditt befintliga Azure Storage-konto i Azure Portal.

  2. Navigera till en lagringstabell med namnet ycsbbenchmarkingmetadata och leta upp entiteten med partitionsnyckeln ycsb_sql.

    Skärmbild av tabellen ycsbbenchmarkingMetadata i ett lagringskonto.

  3. Observera fältet för JobStatus tabellentiteten. Inledningsvis är Started statusen för jobbet och den innehåller en tidsstämpel i JobStartTime egenskapen men inte egenskapen JobFinishTime .

  4. Vänta tills jobbet har statusen Finished och innehåller en tidsstämpel i egenskapen JobFinishTime .

    Tips

    Det kan ta cirka 20–30 minuter för jobbet att slutföras.

  5. Navigera till lagringscontainern i samma konto med prefixet ycsbbenchmarking-*. Observera utdata och diagnostikblobar för verktyget.

    Skärmbild av containern och utdatablobar från benchmarking-verktyget.

  6. Ö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.

    Skärmbild av innehållet i aggregeringsresultatbloben.

    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.

  • Lässvarstid

    Diagram över den typiska läsfördröjningen i genomsnitt cirka 1 millisekunder till 2 millisekunder.

  • Skrivsvarstid

    Diagram över den typiska skrivfördröjningen i genomsnitt cirka 4 millisekunder.

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.

Skärmbild av container och blobar i ett lagringskonto.

  • Om loggarna inte är tillgängliga i lagringskontot orsakas det här problemet vanligtvis av en felaktig eller saknad lagringsanslutningssträ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 kan nås.

    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