Testiranje opterećenja web poslužitelja pomoću alata za usporednu analizu opsade


Znati koliko prometa vaš web poslužitelj može podnijeti kada je pod stresom ključno je za planiranje budućeg rasta vaše web stranice ili aplikacije. Korištenjem alata pod nazivom opsada, možete pokrenuti test opterećenja na svom poslužitelju i vidjeti kako vaš sustav radi pod različitim okolnostima.

Možete koristiti opsadu za procjenu količine prenesenih podataka, vremena odgovora, brzine transakcije, protoka, konkurentnosti i koliko je puta poslužitelj vratio odgovore. Alat ima tri načina rada u kojima može raditi – regresija, internetska simulacija i gruba sila.

Važno: Siege treba pokretati samo protiv poslužitelja koje posjedujete ili onih za koje imate izričito dopuštenje za testiranje. U nekim se zemljama korištenje opsade na neovlaštenim web stranicama može smatrati zločinom.

Instaliranje uslužnog programa za testiranje opterećenja Siege HTTP u Linuxu

Siege je multiplatforma i može se instalirati pod Ubuntu/Debian i CentOS/RHEL distribucijama pomoću sljedećih naredbi.

Da biste instalirali Siege pod Debin/Ubuntu, možete pokrenuti:

sudo apt install siege

Za CentOS/RHEL morate instalirati i omogućiti repozitorij za instaliranje opsade sa:

yum install epel-release
yum install siege

Alternativno, možete izgraditi Opsadu iz izvora. U tu svrhu morat ćete imati instalirane build-essential i razvojne pakete.

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

Zatim možete preuzeti Siege pomoću naredbe wget i instalirati iz izvora kao što je prikazano.

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

Konfiguriranje uslužnog programa za testiranje opterećenja Siege HTTP u Linuxu

Nakon što dovršite instalaciju, možete podesiti konfiguracijsku datoteku opsade. Nalazi se u /etc/siege/siegerc. U slučaju da ste odlučili izgraditi paket iz izvora, morat ćete pokrenuti:

sudo siege.config

Ovo će generirati datoteku siege.conf koja se nalazi u početnoj stranici vašeg korisnika ~/.siege/siege.conf.

Sadržaj datoteke trebao bi izgledati otprilike ovako. Imajte na umu da sam dekomentirao direktive logfile i time:

cat siegerc |egrep -v "^$|#"
Uzorak izlaza
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 trenutnom konfiguracijom, opsada će imitirati 25 istodobnih korisnika tijekom 1 minute.

Sada ste spremni pokrenuti svoju opsadu.

Testiranje opterećenja web stranice pomoću uslužnog programa za usporednu analizu opsade

Pokretanje opsade prilično je jednostavno, samo trebate navesti web stranicu koju želite testirati ovako:

siege example.com

Ako dostupnost ostane na 100% i nema neuspjelih veza, vaš je sustav bio dobar i nije bilo problema. Također biste trebali pripaziti na vrijeme odgovora.

Pokrenite opsadu protiv više web stranica

Možete testirati više URL-ova postavljanjem opsade da ih čita iz datoteke. Možete opisati URL-ove u /usr/local/etc/urls.txt ovako:

Sada da kažete siege da testira URL-ove iz datoteke, upotrijebite opciju -f ovako:

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

Također možete koristiti opcije naredbenog retka, ako želite isprobati različite postavke od onih opisanih u konfiguracijskoj datoteci.

  • -C – odredite vlastitu konfiguracijsku datoteku.
  • -q – potiskuje izlaz opsade.
  • -g – GET, povlačenje HTTP zaglavlja i prikaz transakcije. Korisno za otklanjanje pogrešaka.
  • -c – broj istodobnih korisnika, zadano je 10.
  • -r – koliko puta pokrenuti test.
  • -t – koliko vremena za pokretanje testa. Možete navesti S, M ili H npr.: –vrijeme=10S za 10 sekundi.
  • -d – slučajno kašnjenje prije svakog zahtjeva.
  • -b – nema kašnjenja između zahtjeva.
  • -i – simulacija korisnika. Koristi se za nasumične URL-ove.
  • -f – testira URL-ove iz navedene datoteke.
  • -l – log datoteka.
  • -H – Dodajte zaglavlje zahtjevu.
  • -A – odredite korisnički agent.
  • -T – postavlja Content-Type u zahtjevu.
  • --no-parser – NEMA PARSERA, isključite parser HTML stranice.
  • --no-follow – ne slijedi HTTP preusmjeravanja.
Zaključak

Siege je moćan alat za mjerenje pouzdanosti vašeg sustava kada je pod velikim opterećenjem. Mogu ga koristiti web programeri za testiranje svog koda kada je web mjesto pod prisilom. Svoje testove uvijek trebate izvoditi s oprezom jer bi testirani poslužitelj mogao postati nedostupan tijekom evaluacije.