Load Testing Web-servere med Siege Benchmarking Tool


At vide, hvor meget trafik din webserver kan håndtere, når du er under stress, er afgørende for planlægningen af din websides eller applikations fremtidige vækst. Ved at bruge værktøj kaldet siege kan du køre en belastningstest på din server og se, hvordan dit system fungerer under forskellige omstændigheder.

Du kan bruge belejring til at evaluere mængden af data, der overføres, svartid, transaktionshastighed, gennemstrømning, samtidighed og hvor mange gange serveren returnerede svar. Værktøjet har tre tilstande, hvor det kan fungere - regression, internetsimulering og brute force.

Vigtigt: Siege skal kun køres mod servere, du ejer, eller på sådanne, som du har eksplicit tilladelse til at teste. I nogle lande kan brugen af belejring på uautoriserede websteder betragtes som en forbrydelse.

Installation af Siege HTTP Load Testing Utility i Linux

Siege er multi-platform og kan installeres under Ubuntu/Debian og CentOS/RHEL distributioner ved hjælp af følgende kommandoer.

For at installere Siege under Debin/Ubuntu kan du køre:

$ sudo apt install siege

For CentOS/RHEL skal du installere og aktivere lager for at installere belejring med:

# yum install epel-release
# yum install siege

Alternativt kan du oprette belejringen fra kilden. Til dette formål skal du have build-essentielle og udviklingspakker installeret.

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

Derefter kan du downloade Siege ved hjælp af wget-kommandoen og installere fra kilder som vist.

$ 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

Konfiguration af Siege HTTP Load Testing Utility i Linux

Når du er færdig med installationen, kan du justere din belejringskonfigurationsfil. Det er placeret i/etc/belejring/siegerc. Hvis du har besluttet at bygge pakken fra kilden, skal du køre:

$ sudo siege.config

Dette genererer siege.conf-fil placeret i din brugers hjem ~/.siege/siege.conf.

Indholdet af filen skal se sådan ud. Bemærk, at jeg ikke har kommenteret logfilen og tidsdirektiverne:

# cat siegerc |egrep -v "^$|#"
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

Med den aktuelle konfiguration vil belejring efterligne 25 samtidige brugere i løbet af 1 minut.

Du er nu klar til at køre din belejring.

Test af webstedets belastning med Siege Benchmarking Utility

At køre belejring er ret let, du behøver kun at specificere det websted, du vil teste sådan:

# siege example.com

Hvis tilgængeligheden forbliver på 100%, og der ikke er nogen mislykkede forbindelser, klarede dit system sig godt, og der var ingen problemer. Du bør også holde øje med svartiden.

Du kan teste flere webadresser ved at indstille belejring for at læse dem fra filen. Du kan beskrive webadresserne i /usr/local/etc/urls.txt således:

For at fortælle belejring for at teste URL'erne fra filen skal du bruge indstillingen -f som denne:

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

Du kan også bruge kommandolinjemuligheder, hvis du vil prøve andre indstillinger end dem, der er beskrevet i konfigurationsfilen.

  • -C - angiv din egen konfigurationsfil.
  • -q - undertrykker belejringens output.
  • -g - FÅ, træk HTTP-headere ned og vis transaktionen. Nyttig til fejlretning.
  • -c - antallet af samtidige brugere, standard er 10.
  • -r - hvor mange gange der skal køres testen.
  • -t - hvor lang tid til at køre testen. Du kan angive S, M eller H ex: –time = 10S i 10 sekunder.
  • -d - tilfældig forsinkelse før hver anmodning.
  • -b - ingen forsinkelser mellem anmodninger.
  • -i - brugersimulering. Bruges til at ramme tilfældige webadresser.
  • -f - test URL'er fra den angivne fil.
  • -l - logfil.
  • -H - Tilføj et overskrift til anmodning.
  • -A - angiv en brugeragent.
  • -T - Indstiller Content-Type i anmodning.
  • --no-parser - NO PARSER, slå HTML-sideparseren fra.
  • - no-follow - følg ikke HTTP-omdirigeringer.

Siege er et kraftfuldt værktøj til at måle dit systems pålidelighed, når det er under høj belastning. Det kan bruges af webudviklere til at teste deres kode, når webstedet er under tvang. Du skal altid køre dine tests med forsigtighed, da den testede server kan blive utilgængelig under evalueringen.