Kurz: Spuštění zátěžového testu pro identifikaci kritických bodů výkonu ve webové aplikaci

V tomto kurzu se naučíte identifikovat kritické body výkonu ve webové aplikaci pomocí azure Load Testing. Simulujete zatížení ukázkové webové aplikace Node.js a pak použijete řídicí panel zátěžového testu k analýze metrik na straně klienta a na straně serveru.

Ukázková aplikace se skládá z webového rozhraní API Node.js, které komunikuje s databází NoSQL. Webové rozhraní API nasadíte do webových aplikací služby Aplikace Azure a jako databázi použijete službu Azure Cosmos DB.

V tomto kurzu se naučíte:

  • Nasaďte ukázkovou aplikaci.
  • Vytvořte a spusťte zátěžový test.
  • Přidejte do zátěžového testu komponenty aplikace Azure.
  • Pomocí řídicího panelu zátěžového testu identifikujte kritické body výkonu.

Požadavky

Kontrola požadovaných součástí

Než začnete, ověřte své prostředí:

Nasazení ukázkové aplikace

V tomto kurzu generujete zatížení pro ukázkovou webovou aplikaci, kterou nasadíte do služby Aplikace Azure Service. K nasazení ukázkové aplikace ve vašem předplatném Azure použijte příkazy Azure CLI, příkazy Gitu a příkazy PowerShellu.

  1. Otevřete Windows PowerShell, přihlaste se k Azure a nastavte předplatné:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Naklonujte zdrojové úložiště ukázkové aplikace:

    git clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.git
    

    Ukázková aplikace je aplikace Node.js, která se skládá z webové komponenty Aplikace Azure Service a databáze Azure Cosmos DB. Úložiště obsahuje skript PowerShellu, který nasadí ukázkovou aplikaci do předplatného Azure. Obsahuje také skript Apache JMeter, který použijete v dalších krocích.

  3. Přejděte do adresáře aplikace Node.js a nasaďte ukázkovou aplikaci pomocí tohoto skriptu PowerShellu:

    cd nodejs-appsvc-cosmosdb-bottleneck
    .\deploymentscript.ps1
    

    Tip

    PowerShell můžete nainstalovat v Linuxu nebo WSL nebo macOS.

    Po instalaci můžete spustit předchozí příkaz jako pwsh ./deploymentscript.ps1.

  4. Na příkazovém řádku zadejte:

    • ID vašeho předplatného Azure
    • Jedinečný název vaší webové aplikace.
    • Umístění. Ve výchozím nastavení je eastusumístění . Kódy oblastí můžete získat spuštěním příkazu Get-AzLocation .

    Důležité

    Pro název vaší webové aplikace používejte jenom malá písmena a číslice. Nepoužívejte mezery ani speciální znaky.

  5. Po dokončení nasazení přejděte do spuštěné ukázkové aplikace tak, že otevřete https://<yourappname>.azurewebsites.net okno prohlížeče.

Teď, když máte nasazenou a spuštěnou ukázkovou aplikaci, můžete vytvořit prostředek zátěžového testování Azure a zátěžový test.

Vytvoření zátěžového testu

V tomto kurzu vytváříte zátěžový test pomocí Azure CLI tak, že nahrajete testovací skript JMeter (jmx soubor). Úložiště ukázkové aplikace již obsahuje konfigurační soubor zátěžového testu a testovací skript JMeter.

Pokud chcete vytvořit zátěžový test pomocí webu Azure Portal, postupujte podle kroků v rychlém startu: Vytvořte zátěžový test pomocí skriptu JMeter.

Pomocí následujícího postupu vytvořte prostředek zátěžového testování Azure a zátěžový test pomocí Azure CLI:

  1. Otevřete okno terminálu a zadáním následujícího příkazu se přihlaste k předplatnému Azure.

    az login
    
  2. Přejděte do adresáře ukázkové aplikace.

    cd nodejs-appsvc-cosmosdb-bottleneck
    
  3. Vytvořte skupinu prostředků pro prostředek zátěžového testování Azure.

    Volitelně můžete znovu použít také skupinu prostředků ukázkové aplikace, kterou jste nasadili dříve.

    <load-testing-resource-group-name> Zástupný text nahraďte názvem skupiny prostředků.

    resourceGroup="<load-testing-resource-group-name>"
    location="East US"
    
    az group create --name $resourceGroup --location $location
    
  4. Pomocí příkazu vytvořte prostředek az load create zátěžového testování Azure.

    <load-testing-resource-name> Zástupný text nahraďte názvem prostředku zátěžového testování.

    # This script requires the following Azure CLI extensions:
    # - load
    
    loadTestResource="<load-testing-resource-name>"
    
    az load create --name $loadTestResource --resource-group $resourceGroup --location $location
    
  5. Vytvořte zátěžový test pro simulaci zatížení pro ukázkovou aplikaci pomocí az load test create příkazu.

    <web-app-hostname> Zástupný text nahraďte názvem hostitele služby App Service ukázkové aplikace. Tato hodnota je ve formuláři myapp.azurewebsites.net. Nezahrnujte část https:// adresy URL.

    testId="sample-app-test"
    webappHostname="<web-app-hostname>"
    
    az load test create --test-id $testId --load-test-resource $loadTestResource --resource-group $resourceGroup --load-test-config-file SampleApp.yaml --env webapp=$webappHostname
    

    Tento příkaz používá konfigurační soubor zátěžového Sampleapp.yamlSampleApp.jmx testu, který odkazuje na testovací skript JMeter. K předání názvu hostitele ukázkové aplikace do zátěžového testu použijete parametr příkazového řádku.

Teď máte prostředek zátěžového testování Azure a zátěžový test, který vygeneruje zatížení pro ukázkovou webovou aplikaci ve vašem předplatném Azure.

Přidání komponent aplikace Azure pro monitorování aplikace

Azure Load Testing umožňuje monitorovat metriky prostředků pro komponenty Azure vaší aplikace. Analýzou těchto metrik na straně serveru můžete identifikovat problémy s výkonem a stabilitou ve vaší aplikaci přímo z řídicího panelu Azure Load Testing.

V tomto kurzu přidáte komponenty Azure pro ukázkovou aplikaci, kterou jste nasadili v Azure, jako je app service, účet Cosmos DB a další.

Přidání komponent aplikace Azure pro ukázkovou aplikaci do zátěžového testu:

  1. Na webu Azure Portal přejděte k prostředku zátěžového testování Azure.

  2. V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.

  3. Zaškrtněte políčko vedle zátěžového testu a pak vyberte Upravit.

    Screenshot that shows the list of load tests in the Azure portal, highlighting how to select a test from the list and the Edit button to modify the load test configuration.

  4. Přejděte na kartu Monitorování a pak vyberte Přidat nebo upravit.

  5. Zaškrtněte políčka ukázkové aplikace, kterou jste nasadili dříve, a pak vyberte Použít.

    Screenshot that shows how to add app components to a load test in the Azure portal.

    Tip

    Pomocí filtru skupiny prostředků můžete zobrazit pouze prostředky Azure v ukázkové skupině prostředků aplikace.

  6. Výběrem možnosti Použít uložte změny konfigurace zátěžového testu.

Úspěšně jste do zátěžového testu přidali komponenty aplikace Azure pro ukázkovou aplikaci, abyste povolili monitorování metrik na straně serveru, zatímco je zátěžový test spuštěný.

Spuštění zátěžového testu

Teď můžete spustit zátěžový test pro simulaci zatížení s ukázkovou aplikací, kterou jste nasadili ve svém předplatném Azure. V tomto kurzu spustíte zátěžový test z webu Azure Portal. Případně můžete nakonfigurovat pracovní postup CI/CD tak, aby se spustil zátěžový test.

Spuštění zátěžového testu na webu Azure Portal:

  1. Na webu Azure Portal přejděte k prostředku zátěžového testování Azure.

  2. V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.

  3. Výběrem zátěžového testu ze seznamu zobrazíte podrobnosti testu a seznam testovacích běhů.

  4. Vyberte Spustit a pak znovu spusťte zátěžový test.

    Volitelně můžete zadat popis testovacího spuštění.

    Screenshot that shows how to start a load test in the Azure portal.

    Když spustíte zátěžový test, Azure Load Testing nasadí testovací skript JMeter a všechny další soubory do instancí testovacího modulu a pak spustí zátěžový test.

  5. Po spuštění zátěžového testu by se měl zobrazit řídicí panel zátěžového testu.

    Pokud se řídicí panel nezobrazuje, můžete v seznamu vybrat možnost Aktualizovat a pak vybrat testovací běh.

    Řídicí panel zátěžového testu zobrazuje podrobnosti o testovacím spuštění, jako jsou metriky na straně klienta a metriky aplikací na straně serveru. Grafy na řídicím panelu se aktualizují automaticky.

    Screenshot that shows the client-side metrics graphs in the load test dashboard in the Azure portal.

    K přizpůsobení grafů můžete použít více filtrů nebo agregovat výsledky na různé percentily.

    Tip

    Zátěžový test můžete kdykoli zastavit na webu Azure Portal výběrem možnosti Zastavit.

Než přejdete k další části, počkejte, až se zátěžový test úplně dokončí.

Identifikace kritických bodů výkonu pomocí metrik na straně serveru

V této části budete analyzovat výsledky zátěžového testu a identifikovat kritické body výkonu v aplikaci. Prozkoumejte metriky na straně klienta i na straně serveru a zjistěte původní příčinu problému.

  1. Nejprve se podívejte na metriky na straně klienta. Všimněte si, že 90. percentil metriky doby odezvy pro addget požadavky rozhraní API je vyšší, než je pro lasttimestamp rozhraní API.

    Screenshot that shows the client-side metrics.

    Podobný vzor můžete zobrazit u chyb, kdy lasttimestamp rozhraní API obsahuje méně chyb než ostatní rozhraní API.

    Screenshot that shows the error chart.

    Výsledky rozhraní add API jsou get podobné, zatímco lasttimestamp rozhraní API se chová odlišně. Příčinou může být databáze, protože obě add rozhraní get API zahrnují přístup k databázi.

  2. Pokud chcete tento kritický bod prozkoumat podrobněji, posuňte se dolů do části řídicího panelu metrik na straně serveru.

    Metriky na straně serveru zobrazují podrobné informace o komponentách aplikací Azure: plán služby Aplikace Azure, webová aplikace služby Aplikace Azure a Azure Cosmos DB.

    Screenshot that shows the Azure App Service plan metrics.

    V metrikách plánu služby Aplikace Azure můžete vidět, že metriky procent procesoru a procent paměti jsou v přijatelném rozsahu.

  3. Teď se podívejte na metriky na straně serveru služby Azure Cosmos DB.

    Screenshot that shows Azure Cosmos DB metrics.

    Všimněte si, že metrika Normalizovaná spotřeba RU ukazuje, že databáze byla rychle spuštěna s 100% využitím prostředků. Vysoké využití prostředků může způsobit chyby omezování databáze. Může také zvýšit dobu odezvy pro add webová rozhraní API a get webová rozhraní API.

    Můžete si také prohlédnout, že metrika zřízená propustnost instance služby Azure Cosmos DB má maximální propustnost 400 RU. Zvýšení zřízené propustnosti databáze může vyřešit problém s výkonem.

Zvýšení propustnosti databáze

V této části přidělíte databázi více prostředků pro vyřešení kritického bodu výkonu.

U služby Azure Cosmos DB zvyšte nastavení škálování RU databáze:

  1. Přejděte k prostředku Azure Cosmos DB, který jste zřídili jako součást nasazení ukázkové aplikace.

  2. Vyberte kartu Průzkumník dat.

    Screenshot that shows Data Explorer tab.

  3. Vyberte Škálovat a Nastavení a aktualizujte hodnotu propustnosti na 1200.

    Screenshot that shows the updated Azure Cosmos DB scale settings.

  4. Výběrem možnosti Uložit potvrďte změny.

Ověření vylepšení výkonu

Teď, když jste zvýšili propustnost databáze, spusťte zátěžový test znovu a ověřte, že se zlepšily výsledky výkonu:

  1. Na řídicím panelu testovacího spuštění vyberte Znovu spustit a v podokně Znovu spustit test vyberte Znovu spustit.

    Screenshot that shows selections for running the load test.

    Zobrazí se nová položka testovacího spuštění se sloupcem stavu, který prochází stavy Zřizování, Provádění a Hotovo . Kdykoli vyberte testovací běh, abyste mohli monitorovat průběh zátěžového testu.

  2. Po dokončení zátěžového testu zkontrolujte výsledky doby odezvy a výsledky chyb metrik na straně klienta.

  3. Zkontrolujte metriky na straně serveru pro službu Azure Cosmos DB a ujistěte se, že se zlepšil výkon.

    Screenshot that shows the Azure Cosmos DB client-side metrics after update of the scale settings.

    Normalizovaná hodnota spotřeby RU služby Azure Cosmos DB je teď dobře nižší než 100 %.

Teď, když jste aktualizovali nastavení škálování databáze, uvidíte, že:

  • Doba odezvy pro vylepšená add rozhraní API a get rozhraní API.
  • Normalizovaná spotřeba RU zůstává v pořádku pod limitem.

Výsledkem je zlepšení celkového výkonu aplikace.

Vyčištění prostředků

Důležité

Prostředek azure Load Testing, který jste vytvořili pro další kurzy a postupy, můžete znovu použít.

Pokud nechcete používat žádné prostředky, které jste vytvořili, odstraňte je, abyste za ně nemuseli účtovat žádné další poplatky. Pokud jste ukázkovou aplikaci nasadili do jiné skupiny prostředků, můžete zopakovat následující kroky.

Odstranění prostředků pomocí webu Azure Portal:

  1. V levém horním rohu vyberte tlačítko nabídky a pak vyberte Skupiny prostředků.

  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili.

  3. Vyberte Odstranit skupinu prostředků. Screenshot of the selections to delete a resource group in the Azure portal.

  4. Zadejte název skupiny prostředků. Poté vyberte Odstranit.

Pokud chcete odstranit prostředky pomocí Azure CLI, zadejte následující příkaz:

az group delete --name <yourresourcegroup>

Nezapomeňte, že odstraněním skupiny prostředků odstraníte všechny prostředky v ní.