Sdílet prostřednictvím


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í azure App Service a jako databázi použijete službu Azure Cosmos DB.

V tomto návodu se naučíte, jak:

  • 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 předpokladů

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 Azure App 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 Node.js aplikace, která se skládá z webové komponenty Azure App 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 pomocí tohoto skriptu PowerShellu nasaďte ukázkovou aplikaci:

    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.
    • Lokace. 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.

    Snímek obrazovky znázorňující seznam zátěžových testů na webu Azure Portal, který zvýrazňuje, jak vybrat test ze seznamu a tlačítko Upravit a upravit konfiguraci zátěžového testu

  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.

    Snímek obrazovky, který ukazuje, jak přidat komponenty aplikace do zátěžového testu na webu 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í.

    Snímek obrazovky, který ukazuje, jak spustit zátěžový test na webu 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.

    Snímek obrazovky znázorňující grafy metrik na straně klienta na řídicím panelu zátěžového testu na webu 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.

    Snímek obrazovky znázorňující metriky na straně klienta

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

    Snímek obrazovky znázorňující chybový graf

    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 Azure App Service, webová aplikace Azure App Service a Azure Cosmos DB.

    Snímek obrazovky znázorňující metriky plánu služby Azure App Service

    V metrikách pro plán služby Azure App Service vidíte, ž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.

    Snímek obrazovky znázorňující metriky služby Azure Cosmos DB

    Všimněte si, že metrika Normalizovaná spotřeba RU ukazuje, že databáze byla rychle spuštěná při 100% využití 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 .

    Snímek obrazovky s kartou Průzkumník dat

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

    Snímek obrazovky znázorňující aktualizované nastavení škálování služby Azure Cosmos DB

  4. Klikněte na Uložit pro potvrzení změn.

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 spustittest vyberte Znovu spustit.

    Snímek obrazovky znázorňující výběry pro spuštění zátěžového testu

    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.

    Snímek obrazovky znázorňující metriky na straně klienta služby Azure Cosmos DB po aktualizaci nastavení škálování

    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čistěte zdroje

Důležité

Prostředek Azure Load Testing, který jste vytvořili, můžete znovu použít pro další návody a články typu jak na to v Azure Load Testing.

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.

Chcete-li odstranit prostředky pomocí 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 zdrojů. Snímek obrazovky výběrů pro odstranění skupiny prostředků na portálu Azure.

  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í.