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
- Účet Azure s aktivním předplatným. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Rozhraní příkazového řádku Azure nainstalované na místním počítači.
- Azure CLI verze 2.2.0 nebo novější Spuštěním příkazu vyhledejte
az --version
verzi nainstalovanou na vašem počítači. Pokud potřebujete nainstalovat nebo upgradovat Azure CLI, přečtěte si, jak nainstalovat Azure CLI. - Visual Studio Code. Pokud ho nemáte, stáhněte si ho a nainstalujte.
- Git. Pokud ho nemáte, stáhněte si ho a nainstalujte.
Kontrola požadovaných součástí
Než začnete, ověřte své prostředí:
Přihlaste se k webu Azure Portal a zkontrolujte, jestli je vaše předplatné aktivní.
Spuštěním příkazu
az --version
zkontrolujte verzi Azure CLI v terminálu nebo příkazovém okně. Nejnovější verzi najdete v nejnovější zprávě k vydání verze.Pokud nemáte nejnovější verzi, aktualizujte instalaci podle průvodce instalací operačního systému nebo platformy.
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.
Otevřete Windows PowerShell, přihlaste se k Azure a nastavte předplatné:
az login az account set --subscription <your-Azure-Subscription-ID>
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.
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
.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
eastus
umí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.
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:
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
Přejděte do adresáře ukázkové aplikace.
cd nodejs-appsvc-cosmosdb-bottleneck
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
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
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ářimyapp.azurewebsites.net
. Nezahrnujte částhttps://
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.yaml
SampleApp.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:
Na webu Azure Portal přejděte k prostředku zátěžového testování Azure.
V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.
Zaškrtněte políčko vedle zátěžového testu a pak vyberte Upravit.
Přejděte na kartu Monitorování a pak vyberte Přidat nebo upravit.
Zaškrtněte políčka ukázkové aplikace, kterou jste nasadili dříve, a pak vyberte Použít.
Tip
Pomocí filtru skupiny prostředků můžete zobrazit pouze prostředky Azure v ukázkové skupině prostředků aplikace.
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:
Na webu Azure Portal přejděte k prostředku zátěžového testování Azure.
V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.
Výběrem zátěžového testu ze seznamu zobrazíte podrobnosti testu a seznam testovacích běhů.
Vyberte Spustit a pak znovu spusťte zátěžový test.
Volitelně můžete zadat popis testovacího spuštění.
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.
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.
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.
Nejprve se podívejte na metriky na straně klienta. Všimněte si, že 90. percentil metriky doby odezvy pro
add
get
požadavky rozhraní API je vyšší, než je prolasttimestamp
rozhraní API.Podobný vzor můžete zobrazit u chyb, kdy
lasttimestamp
rozhraní API obsahuje méně chyb než ostatní rozhraní API.Výsledky rozhraní
add
API jsouget
podobné, zatímcolasttimestamp
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.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.
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.
Teď se podívejte na metriky na straně serveru služby Azure Cosmos DB.
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 aget
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:
Přejděte k prostředku Azure Cosmos DB, který jste zřídili jako součást nasazení ukázkové aplikace.
Vyberte kartu Průzkumník dat.
Vyberte Škálovat a Nastavení a aktualizujte hodnotu propustnosti na 1200.
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:
Na řídicím panelu testovacího spuštění vyberte Znovu spustit a v podokně Znovu spustit test vyberte Znovu spustit.
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.
Po dokončení zátěžového testu zkontrolujte výsledky doby odezvy a výsledky chyb metrik na straně klienta.
Zkontrolujte metriky na straně serveru pro službu Azure Cosmos DB a ujistěte se, že se zlepšil výkon.
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 aget
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:
V levém horním rohu vyberte tlačítko nabídky a pak vyberte Skupiny prostředků.
V seznamu vyberte skupinu prostředků, kterou jste vytvořili.
Vyberte Odstranit skupinu prostředků.
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í.
Související obsah
- Další podrobnosti o diagnostice neúspěšných testů
- Monitorování metrik na straně serveru za účelem identifikace kritických bodů výkonu ve vaší aplikaci
- Definování kritérií neúspěšných zátěžových testů pro ověření výsledků testů podle požadavků na služby
- Přečtěte si další informace o klíčových konceptech pro zátěžové testování Azure.