Konfigurace zátěžového testování Azure pro vysoké zatížení

V tomto článku se dozvíte, jak nakonfigurovat zátěžový test pro vysoce škálovatelné s využitím zátěžového testování Azure. Azure Load Testing abstrahuje složitost zřizování infrastruktury pro simulaci vysoce škálovatelného provozu. Pokud chcete škálovat zátěžový test, můžete nakonfigurovat počet instancí paralelního testovacího modulu. Pokud chcete dosáhnout optimální distribuce zatížení, můžete monitorovat metriky stavu testovací instance na řídicím panelu Azure Load Testing.

Požadavky

Konfigurace parametrů zatížení pro zátěžový test

Pokud chcete simulovat uživatelský provoz pro vaši aplikaci, můžete nakonfigurovat model zatížení a počet virtuálních uživatelů, pro které chcete simulovat zatížení. Spuštěním zátěžového testu napříč mnoha instancemi paralelního testovacího modulu může Azure Load Testing škálovat počet virtuálních uživatelů, kteří simulují provoz do vaší aplikace. Model zatížení určuje, jak se zatížení distribuuje po dobu trvání zátěžového testu. Příklady vzorů zatížení jsou lineární, stupňovité nebo špičkové zatížení.

V závislosti na typu zátěžového testu, založeném na adrese URL nebo JMeter máte různé možnosti konfigurace cílového zatížení a vzoru zatížení. Následující tabulka uvádí rozdíly mezi těmito dvěma typy testů.

Typ testu Počet virtuálních uživatelů Load pattern
Na základě adresy URL (základní) Zadejte cílový počet virtuálních uživatelů v konfiguraci zátěžového testu. Model lineárního zatížení na základě doby zužování a počtu virtuálních uživatelů.
Založená na adrese URL (pokročilé) Zadejte počet testovacích modulů a počet virtuálních uživatelů na instanci v konfiguraci zátěžového testu. Nakonfigurujte vzor zatížení (lineární, krok, špička).
Založené na JMeteru Zadejte počet testovacích modulů v konfiguraci zátěžového testu. Zadejte počet virtuálních uživatelů v testovacím skriptu. Nakonfigurujte vzor zatížení v testovacím skriptu.

Konfigurace parametrů načtení pro testy založené na adrese URL

Určení parametrů načtení pro zátěžový test založený na adrese URL:

  1. Na webu Azure Portal přejděte k prostředku azure Load Testing.

  2. V levém navigačním panelu vyberte Testy , abyste zobrazili všechny testy.

  3. V seznamu vyberte zátěžový test a pak vyberte Upravit.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Případně můžete také upravit konfiguraci testu ze stránky s podrobnostmi testu. Uděláte to tak, že vyberete Konfigurovat a pak vyberete Test.

  4. Na stránce Základy nezapomeňte vybrat Povolit upřesňující nastavení.

  5. Na stránce Upravit test vyberte kartu Načíst.

    U testů založených na adrese URL můžete nakonfigurovat počet instancí paralelního testovacího modulu a vzor zatížení.

  6. Pomocí posuvníku instance modulu aktualizujte počet instancí paralelního testovacího modulu. Případně zadejte cílovou hodnotu do vstupního pole.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  7. V seznamu vyberte hodnotu vzoru zatížení.

    Pro každý vzor vyplňte odpovídající nastavení konfigurace. Graf poskytuje vizuální znázornění vzoru zatížení a jeho konfiguračních parametrů.

    Screenshot of the 'Load' tab when editing a load test, showing how to configure the load pattern.

Konfigurace parametrů zatížení pro testy založené na JMeteru

Určení parametrů zatížení pro zátěžový test založený na JMeteru:

  1. Na webu Azure Portal přejděte k prostředku azure Load Testing.

  2. V levém navigačním panelu vyberte Testy , abyste zobrazili všechny testy.

  3. V seznamu vyberte zátěžový test a pak vyberte Upravit.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Případně můžete také upravit konfiguraci testu ze stránky s podrobnostmi testu. Uděláte to tak, že vyberete Konfigurovat a pak vyberete Test.

  4. Na stránce Upravit test vyberte kartu Načíst. Pomocí posuvníku Instance stroje aktualizujte počet instancí testovacího modulu nebo zadejte hodnotu přímo do vstupního pole.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  5. Vyberte Použít , chcete-li upravit test a použít novou konfiguraci při opětovném spuštění.

Monitorování metrik instancí modulu

Abyste měli jistotu, že instance testovacího modulu nejsou kritickým bodem výkonu, můžete monitorovat metriky prostředků instance testovacího modulu. Vysoké využití prostředků pro testovací instanci může negativně ovlivnit výsledky zátěžového testu.

Azure Load Testing hlásí čtyři metriky prostředků pro každou instanci:

  • Procento procesoru
  • Procento paměti.
  • Bajty sítě za sekundu
  • Počet virtuálních uživatelů

Instance testovacího modulu se považuje za v pořádku, pokud průměrné procento procesoru nebo procento paměti po dobu trvání testovacího běhu zůstává nižší než 75 %.

Zobrazení metrik prostředků modulu:

  1. Přejděte k prostředku zátěžového testování. V levém podokně vyberte Testy a zobrazte seznam zátěžových testů.

  2. V seznamu vyberte zátěžový test a zobrazte seznam testovacích běhů.

  3. V seznamu testovacích běhů vyberte testovací běh.

  4. Na řídicím panelu testovacího spuštění vyberte stav modulu a zobrazte metriky prostředků modulu.

    Volitelně můžete vybrat konkrétní instanci testovacího modulu pomocí ovládacích prvků filtrů.

Screenshot that shows the load engine health metrics on the test run dashboard.

Řešení potíží s instancemi modulu, které nejsou v pořádku

Pokud jedna nebo více instancí ukazuje vysoké využití prostředků, mohlo by to ovlivnit výsledky testu. Pokud chcete tento problém vyřešit, zkuste jeden nebo několik následujících kroků:

  • Snižte počet vláken (virtuálních uživatelů) na testovací modul. Pokud chcete dosáhnout cílového počtu virtuálních uživatelů, můžete zvýšit počet instancí modulu pro zátěžový test.

  • Ujistěte se, že je váš skript efektivní bez redundantního kódu.

  • Pokud je stav motoru neznámý, spusťte test znovu.

Určení požadavků za sekundu

Maximální počet požadavků za sekundu (RPS), které může Azure Load Testing vygenerovat pro váš zátěžový test, závisí na latenci aplikace a počtu virtuálních uživatelů (VU). Latence aplikace je celková doba od odeslání žádosti o aplikaci testovacím modulem až po přijetí odpovědi. Počet virtuálních uživatelů je počet paralelních požadavků, které Azure Load Testing provádí v daném okamžiku.

Pokud chcete vypočítat počet požadavků za sekundu, použijte následující vzorec: RPS = (počet virtuálních jednotek) * (1/latence v sekundách).

Pokud je například latence aplikace 20 milisekund (0,02 sekund) a generujete zatížení 2 000 virtuálních počítačů, můžete dosáhnout přibližně 100 000 RPS (2000 × 1/02s).

Pokud chcete dosáhnout cílového počtu požadavků za sekundu, nakonfigurujte celkový počet virtuálních uživatelů pro zátěžový test.

Poznámka:

Apache JMeter hlásí pouze požadavky, které ho provedly na server a zpět, a to buď úspěšně, nebo ne. Pokud se Apache JMeter nemůže připojit k vaší aplikaci, skutečný počet požadavků za sekundu bude nižší než maximální hodnota. Možné příčiny můžou být, že server je příliš zaneprázdněný pro zpracování požadavku nebo že chybí certifikát TLS/SSL. Pokud chcete diagnostikovat problémy s připojením, můžete zkontrolovat graf Chyby na řídicím panelu zátěžového testování a stáhnout soubory protokolu zátěžového testu.

Instance testovacího stroje a virtuální uživatelé

Ve skriptu Apache JMeter můžete zadat počet paralelních vláken. Každé vlákno představuje virtuálního uživatele, který přistupuje ke koncovému bodu aplikace. Doporučujeme ponechat počet vláken ve skriptu nižší než 250.

V Azure Load Testing zodpovídají instance testovacího modulu za spuštění skriptu Apache JMeter. Všechny instance testovacího modulu běží paralelně. Můžete nakonfigurovat počet instancí pro zátěžový test.

Celkový počet virtuálních uživatelů pro zátěžový test je pak: VU = (počet vláken#) * (počet instancí testovacího modulu#).

Pokud chcete simulovat cílový počet virtuálních uživatelů, můžete nakonfigurovat paralelní vlákna ve skriptu JMeter a instance modulu pro zátěžový test odpovídajícím způsobem. Monitorujte metriky testovacího modulu a optimalizujte počet instancí.

Pokud chcete například simulovat 1 000 virtuálních uživatelů, nastavte počet vláken ve skriptu Apache JMeter na 250. Pak nakonfigurujte zátěžový test se čtyřmi instancemi testovacího modulu (to znamená 4 x 250 vláken).

Umístění prostředku Azure Load Testing určuje umístění instancí testovacího modulu. Všechny instance testovacího modulu v rámci prostředku zátěžového testování jsou hostované ve stejné oblasti Azure.