Vyhledávání na webu

Zátěžové testování webových serverů pomocí nástroje Siege Benchmarking Tool


Pro plánování budoucího růstu vašeho webu nebo aplikace je nezbytné vědět, kolik provozu váš webový server zvládne, když je ve stresu. Pomocí nástroje nazvaného obležení můžete na svém serveru spustit zátěžový test a zjistit, jak váš systém funguje za různých okolností.

Pomocí obležení můžete vyhodnotit množství přenesených dat, dobu odezvy, rychlost transakcí, propustnost, souběžnost a kolikrát server vrátil odpovědi. Nástroj má tři režimy, ve kterých může pracovat – regrese, internetová simulace a hrubá síla.

Důležité: Obléhání by mělo být spuštěno pouze proti serverům, které vlastníte, nebo na serverech, na kterých máte výslovné povolení k testování. V některých zemích může být používání obležení na nepovolených webových stránkách považováno za trestný čin.

Instalace nástroje Siege HTTP Load Testing Utility v Linuxu

Siege je multiplatformní a lze jej nainstalovat pod distribuce Ubuntu/Debian a CentOS/RHEL pomocí následujících příkazů.

Chcete-li nainstalovat Siege pod Debin/Ubuntu, můžete spustit:

sudo apt install siege

Pro CentOS/RHEL musíte nainstalovat a povolit úložiště, abyste mohli nainstalovat obléhání pomocí:

yum install epel-release
yum install siege

Případně můžete vytvořit Siege ze zdroje. Pro tento účel budete muset mít nainstalované základní sestavení a vývojové balíčky.

sudo apt install build-essential       #Ubuntu/Debian
yum groupinstall 'Development Tools'   #CentOS/RHEL

Poté si můžete stáhnout Siege pomocí příkazu wget a nainstalovat ze zdrojů, jak je uvedeno na obrázku.

wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install

Konfigurace nástroje Siege HTTP Load Testing Utility v Linuxu

Po dokončení instalace můžete upravit konfigurační soubor obležení. Nachází se v /etc/siege/siegerc. V případě, že jste se rozhodli sestavit balíček ze zdroje, budete muset spustit:

sudo siege.config

Tím se vygeneruje soubor siege.conf umístěný v domově vašeho uživatele ~/.siege/siege.conf.

Obsah souboru by měl vypadat nějak takto. Všimněte si, že jsem zrušil komentář u direktiv logfile a time:

cat siegerc |egrep -v "^$|#"
Ukázkový výstup
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true

S aktuální konfigurací bude obležení napodobovat 25 souběžných uživatelů během 1 minuty.

Nyní jste připraveni zahájit své obléhání.

Testování zatížení webu pomocí nástroje Siege Benchmarking Utility

Spuštění siege je poměrně snadné, stačí zadat web, který chcete testovat, takto:

siege example.com

Pokud dostupnost zůstane na 100 % a nedojde k žádnému selhání připojení, váš systém fungoval dobře a nenastaly žádné problémy. Měli byste také sledovat dobu odezvy.

Spusťte Siege proti více webům

Můžete otestovat více adres URL nastavením obležení tak, aby je bylo možné číst ze souboru. Adresy URL v /usr/local/etc/urls.txt můžete popsat takto:

Nyní, abyste řekli siege, aby otestoval adresy URL ze souboru, použijte volbu -f takto:

siege -f /usr/local/etc/urls.txt

Můžete také použít možnosti příkazového řádku, pokud chcete vyzkoušet jiná nastavení, než jaká jsou popsána v konfiguračním souboru.

  • -C – zadejte svůj vlastní konfigurační soubor.
  • -q – potlačí výstup obléhání.
  • -g – GET, stáhne HTTP hlavičky a zobrazí transakci. Užitečné pro ladění.
  • -c – počet souběžných uživatelů, výchozí je 10.
  • -r – kolikrát se má test spustit.
  • -t – jak dlouho trvá spuštění testu. Můžete zadat S, M nebo H ex: –time=10S po dobu 10 sekund.
  • -d – náhodné zpoždění před každým požadavkem.
  • -b – žádné prodlevy mezi požadavky.
  • -i – uživatelská simulace. Používá se k zasažení náhodných adres URL.
  • -f – otestuje adresy URL ze zadaného souboru.
  • -l – soubor protokolu.
  • -H – Přidá záhlaví k požadavku.
  • -A – zadejte uživatelského agenta.
  • -T – Nastaví Content-Type v požadavku.
  • --no-parser – NO PARSER, vypněte analyzátor stránky HTML.
  • --no-follow – nesledovat přesměrování HTTP.
Závěr

Siege je výkonný nástroj pro měření spolehlivosti vašeho systému při vysoké zátěži. Weboví vývojáři jej mohou použít k testování svého kódu, když je web pod nátlakem. Testy byste měli vždy spouštět opatrně, protože testovaný server se může během hodnocení stát nedostupným.