Drupalize.Me

 A Drupalize.Me handledning

Siege är ett användbart lasttestverktyg för att lägga till i din prestandatestverktygssats. Från webbplatsen:

Siege är en HTTP belastning testning och benchmarking verktyg. Den var utformad för att låta webbutvecklare mäta sin kod under tvång, för att se hur det kommer att stå upp för att ladda på internet. Siege stöder grundläggande autentisering, cookies, HTTP, HTTPS och FTP-protokoll. Det låter användaren träffa en server med ett konfigurerbart antal simulerade klienter. Dessa kunder placerar servern ” under belägring.”

laddningstestning är användbart för att testa prestandan på din webbplats och den infrastruktur som den körs på. Det finns inget värre än att ha en sida på din webbplats publicerad på en populär webbplats och titta på din webbplats smula under belastningen. Siege kan simulera aktivitet på din webbplats, och du kan sedan använda din webbplats från din webbläsare som vanligt, medan din siege körs och verkligen får en känsla för hur din webbplats svarar under belastning.

detta blogginlägg kommer att täcka installera Siege på OS X och Linux, och kör en grundläggande lasttest med Siege.

antaganden

denna handledning förutsätter att du är bekväm att använda kommandoraden för att utfärda grundläggande kommandon och ha en webbplats installerad på din lokala maskin som du kan testa.

installera Siege

ladda ner

först, gå över till https://www.joedog.org/siege-home/ och hitta webbadressen för ett arkiv med den senaste versionen av Siege-applikationen. I skrivande stund är det Siege version 3.1.0.

spara

öppna nu Terminal-appen, vi sparar detta arkiv i vår nedladdningskatalog.

på OS X
cd ~/Downloadscurl -O http://download.joedog.org/siege/siege-3.1.0.tar.gz
på Linux
cd ~/Downloadswget http://download.joedog.org/siege/siege-3.1.0.tar.gz

extrahera arkivet

tar -xvf siege-3.1.0.tar.gz

Byt till arkivkatalogen

cd siege-3.1.0

konfigurera och bygg det!

./configuremakemake install

Läs dokumenten

om du behöver, se de fullständiga installationsanvisningarna.

verifiera installerad Version

bra, nu kan vi testa att vi har siege installerat korrekt, låt oss verifiera den version vi har installerat på vårt system.

siege -VSIEGE 3.1.0

hurra, vi har version 3.1.0 av siege installerat på vårt system, låt oss gå ner till några tester!

lasttestning med Siege

jag ska använda en Drupal-webbplats som jag har installerat lokalt för att ladda test. För att starta en grundläggande belägring kör följande kommando med önskad webbplatsadress (jag använder http://drupal7.local):

siege http://drupal7.local

detta kommer att starta siege med standardalternativen, vilket är 15 samtidiga användare som kommer åt webbplatsens indexsida tills du stoppar siege genom att trycka på control + c.

detta kommer att ge siege-statistiken för ditt test:

Lifting the server siege... done.Transactions: 385 hitsAvailability: 100.00 %Elapsed time: 76.02 secsData transferred: 0.84 MBResponse time: 2.40 secsTransaction rate: 5.06 trans/secThroughput: 0.01 MB/secConcurrency: 12.18Successful transactions: 385Failed transactions: 0Longest transaction: 5.73Shortest transaction: 0.31

tolka resultaten av ett lasttest

nu är först och främst mina resultat inte så imponerande, eftersom jag kör detta på en lågdriven virtuell maskin på min lokala maskin, om du laddar testproduktionsanläggningar, borde du förvänta dig mycket snabbare svarstider.

terminologi

transaktioner är antalet serverträffar. I exemplet 385 transaktioner.

förfluten tid är varaktigheten för hela belägringstestet. Detta mäts från det att användaren åberopar siege tills den sista simulerade användaren slutför sina transaktioner. Som visas ovan tog testet 76,02 sekunder att slutföra.

data som överförs är summan av data som överförs till varje siege simulerad användare. Den innehåller rubrikinformation samt innehåll. Eftersom det innehåller rubrikinformation kommer antalet som rapporteras av siege att vara större än antalet som rapporteras av servern. I internet-läge, som träffar slumpmässiga webbadresser i en konfigurationsfil, förväntas detta antal variera från körning till körning.

svarstid är den genomsnittliga tiden det tog att svara på varje simulerad användares förfrågningar.

Transaktionsgraden är det genomsnittliga antalet transaktioner servern kunde hantera per sekund, i ett nötskal: transaktioner dividerat med förfluten tid.

genomströmning är det genomsnittliga antalet byte som överförs varje sekund från servern till alla simulerade användare.

samtidighet är genomsnittligt antal samtidiga anslutningar, ett tal som stiger när serverns prestanda minskar.

framgångsrika transaktioner är antalet gånger servern returnerade en kod mindre än 400. Följaktligen betraktas omdirigeringar som framgångsrika transaktioner.

testa flera sidor

för att testa flera webbadresser kan vi använda en URL-fil för att ge en lista över webbadresser för att testa under vår belägring. Skapa en textfil som heter URL: er.txt, och Lägg till de webbadresser du vill testa mot (en per rad), jag skapar min i min användares hemkatalog på ~/URL: er.Txt

Siege förstår följande URL-format:

# Comments proceeded by a hashhttp://drupal7.local/http://drupal7.local/node/2http://drupal7.local/node/7http://drupal7.local/rest/node

nu kan du starta siege och ange sökvägen till filen du skapade, för att starta ett test mot dessa webbadresser:

siege -f /path/to/your/urls.txt

Internetläge

Internetläge är ett annat intressant alternativ i Siege, där varje webbadresser som en användare träffar i testet randomiseras. Detta efterliknar en verklig situation där du inte kan förutsäga vilken URL en person kommer att besöka på din webbplats. Den andra implikationen av detta alternativ är att det inte finns någon garanti för att varje sida i webbadressens textfil kommer att träffas på grund av randomiseringen.

för att starta en belägring i internet-läge, använd följande kommando, igen passerar i sökvägen till dina webbadresser.txt:

siege -if /path/to/your/urls.txt

öka antalet samtidiga användare

öka antalet samtidiga användare görs med-C-flaggan, passerar antalet samtidiga användare som du vill testa med:

siege -if /path/to/your/urls.txt -c 500
' -c NUM '' –concurrent=NUM '

samtidiga användare (kräver argument): med det här alternativet kan användaren stressa webbservern med NUM antal simulerade användare. Mängden begränsas endast av de tillgängliga datorresurserna, men realistiskt är ett par hundra simulerade användare lika många gånger som det numret i faktiska användarsessioner. Numret du väljer representerar antalet transaktioner som din server hanterar. Det representerar inte antalet samtidiga sessioner. Kom ihåg att riktiga användare tar lite tid att faktiskt läsa sidan som de har begärt.

det är också användbart att använda-D-flaggan som låter dig sprida transaktionerna:

siege -if /path/to/your/urls.txt -c 500 -d 3
' -d NUM '' –delay=NUM 'Each siege simulated user is delayed for a random number of seconds between one and NUM. If you are benchmarking performance, it is recommended that you use a 1 second delay ( -d1 ). The default value is three (3 ). This delay allows for the transactions to stagger rather then to allow them to pound the server in waves.

Siege har mycket mer att erbjuda, och jag uppmanar dig att läsa dokumentationen i sin helhet för att få en mer fullständig förståelse, men förhoppningsvis kommer denna handledning att få dig på väg.

om du behöver belägra sidor som kräver autentisering som Drupal-användare, kolla in det här hjälparskriptet: https://github.com/msonnabaum/DrupalSiege

Avinstallera Siege och städa upp

om du bestämmer dig för att du inte vill ha Siege installerat på ditt system längre, först avinstallera det, ta bort källkatalogen, och arkiv:

förändring i katalogen du hämtade Siege till:

cd ~/Downloads/siege-3.1.0/make uninstall

nu kan du säkert ta bort källmappen och arkivet på:

~/Downloads/siege-3.1.0~/Downloads/siege.-3.1.0.tar.gz

Mycket väsen för prestanda

om din webbplats känns som det fungerar dåligt under belägring, du kommer att vilja ta reda på varför! Några saker att kontrollera:

  • serverbelastning
  • har du implementerat någon caching?

Lämna ett svar

Din e-postadress kommer inte publiceras.