Jak provést zátěžový test webové aplikace

18. listopadu 2018

Mít webovou aplikaci je fajn. Ale aplikace musí být i dobře použitelná. Základní věc je, aby se webová aplikace načetla pokud možno rychle.

Test rychlosti

Pokud jde o rychlost webové stránky, základní věc, kterou otestujte, je rychlost načtení a zobrazení webové stránky

Je tedy potřeba aplikaci otestovat. Základní test můžete provést tím, že si zvolenou webovou stránku zobrazíte v prohlížeči. Můžete si i zobrazit informace pro vývojáře a kouknout se podrobněji, které části stránky se stáhnou a zobrazí za jakou dobu.

Další možností je využít webových aplikací, které otestují rychlost načtení Vaší webové stránky a zobrazí výsledky:

Zátěžový test

Tento test se dá nazvat také burn test nebo stress tets.

V reálném provozu Vás však bude zajímat jak vaše webová aplikace funguje v reálném provozu, tedy kdy na stránku přistupuje více uživatelů, což může být někdy i mnoho. Proto je potřeba webovou aplikaci otestovat zátěžovým testem, který simuluje situaci, kdy je webová aplikace používána souběžně mnoho uživateli.

Proč provádět zátěžový test? Otestujete tak odezvu aplikace v situaci blízké reálnému použití a tím ověříte že:

  • je aplikace dobře napsaná
  • web server je dobře nakonfigurován
  • web server je dostatečně nadimenzován
Díky tomu se Vám nestane, že například na slabém serveru při defaultní instalaci dojdou systémové prostředky a web server spadne.
A tím pádem bude návštěvník bude spokojeně používat Vaši webovou aplikaci.

K zátěžovému testu webové aplikaci slouží utilita AB, která přistupuje na daný web a simuluje, paralelní přístup mnoha uživatelů.

Hlavní parametry programu AB nastavují přepínače:

  • n - udává kolik s pojení má program provést.
  • c - udává kolik má provádět paralelních spojení.
Čili čím větší c tím vetší zátěž pro server.
Příklad použití:
ab -n 100 -c 25 https://www.domena.cz

Výkon

Pokud jde o výkon aplikace, tedy její rychlost vzhledem ke kombinaci všech možných vlivů, mají vliv na rychlost webové aplikace tyto parametry:

  • Programovací jazyk, jeho verze
  • Databáze
  • Kvalita programu
    • program na serveru (PHP, Python, Java)
    • program na straně klienta (JavaScript)
  • Cachování dat
  • Konfigurace web serveru
  • Konfigurace databáze
  • Výkon hardwaru serveru
  • Případně i rychlost a kvalita sítě
Z pohledu výkonu je samozřejmě ideální mít vlastní virtuální server. Například díky softwaru ISP Config ho můžete spravovat pohodlně i samy.

Návod

Video ukázka jak otestovat rychlost webové aplikace pod zátěží:

Výsledky

A zde jsou reálné testy několika mých webů a vzorového wordpresu, které jsem exportoval do grafu:

josefjebavy.cz-benchmark
/josefjebavy.cz-timeseries.jpg

/maps.xeres.cz-benchmark.png
maps.xeres.cz-timeseries.jpg

wireless.xeres.cz-benchmark.png
wireless.xeres.cz-timeseries.jpg

worpress.xeres.cz-benchmark.png
worpress.xeres.cz-timeseries.jpg

Testy na míru

Pokud chcete otestovat rychlost webu nebo provést zátežový test neváhejte se ozvat jsem k dispozici. Provádím i další analýzy dle potřeb zákazníka.

Články na podobné téma

Operační systém GNU/Linux
Jak začít správně používat Docker
Příprava linuxového serveru pro běh webové aplikaci v jazyce Python
Jak řešit špatný výkon sdílených souborů u Dockeru
GitLab - nástroj na správu, verzování, CI/CD a vedení projektů
Instalace Linuxu na dedikovaný server HPE ProLiant DL320e
Jak provést zátěžový test webové aplikace
Proč používat filesystém JFS
Jak bootovat z 4TB disku s GTP pomocí UEFI
Jak nainstalovat operační systém Magei Linux bez DVD mechaniky
Souborový systém Btrfs
Raspberry PI
Jak zprovoznit vzdálené přehrávání přes síť na televizi s DLNA
Upgrade Mandriva Linuxu za běhu
Poznámky ke GNU/Linux
WINE - spouštíme programy pro Windous pod Linuxem
Yocto Project: Build vlastního operačního sytému pro embedded zařízení
Lenovo ThinkPad X1 Carbon: zprovoznění LTE modemu EM7544
Docker a PHP mail
Docker a Cron
Virtualizace Proxmox