Siege is een krachtige benchmarktool die wordt gebruikt om de prestaties en stabiliteit van webservers onder belasting te testen. Hiermee kunt u simuleren dat meerdere gebruikers tegelijkertijd toegang hebben tot uw website, waardoor u waardevolle inzichten krijgt in de manier waarop uw server met veel verkeer omgaat. Siege ondersteunt basis-HTTP/HTTPS-protocollen en kan GET-, POST- en andere verzoekmethoden uitvoeren. Het wordt veel gebruikt voor stresstests, prestatieafstemming en ervoor zorgen dat webapplicaties piekbelastingen aankunnen.
Om Siege op Ubuntu 24.04, 22.04 of 20.04 te installeren, hebt u twee primaire opties: installeren vanuit de standaard Ubuntu-repository met behulp van de opdrachtregelterminal, of Siege rechtstreeks vanaf de bron downloaden en installeren voor de nieuwste versie en extra functies. Deze gids leidt u door beide installatiemethoden.
Update Ubuntu vóór de Siege-installatie
Ervoor zorgen dat uw Ubuntu-systeem up-to-date is met de nieuwste pakketten is van cruciaal belang voor het onderhouden van een efficiënte, veilige en betrouwbare computeromgeving. Wanneer we de opdracht uitvoeren sudo apt update
, worden de pakketlijsten van het systeem vernieuwd.
Hier is de opdracht om dit uit te voeren:
sudo apt update && sudo apt upgrade
Selecteer Siege-installatiemethode
Optie 1: Installeer Siege via de Ubuntu-standaardrepository
Siege is opgenomen in de standaardrepository's van Ubuntu als een handig benchmarkinghulpmiddel. Dit vereenvoudigt het installatieproces aanzienlijk, waardoor we de ingebouwde pakketbeheertool (APT) van Ubuntu kunnen gebruiken om de installatie uit te voeren.
De opdracht sudo apt install siege zorgt ervoor dat het APT-systeem naar het Siege-pakket in de opslagplaatsen zoekt, de afhankelijkheden afhandelt en Siege op uw systeem installeert. De 'sudo' aan het begin is nodig omdat hierdoor de opdracht kan worden uitgevoerd met root-rechten, die vereist zijn voor systeembrede installaties.
Om Siege te installeren, voert u het volgende commando in:
sudo apt install siege
Optie 2: Installeer Siege op Ubuntu via de broncode
Het compileren van Siege vanuit de broncode is optimaal voor mensen die graag op de hoogte blijven van de nieuwste functies en verbeteringen. Deze methode houdt in dat u de meest recente broncode ophaalt en deze handmatig compileert, zodat u zeker weet dat u over de meest recente versie van Siege beschikt.
De nieuwste belegeringsbron downloaden
Om te beginnen moet u de nieuwste broncode aanschaffen. Het Siege-team zorgt voor een consistente link voor de nieuwste versie, waardoor dit proces wordt vereenvoudigd. Het is echter altijd een goede gewoonte om ervoor te zorgen dat de link in de loop van de tijd geldig blijft.
Om de nieuwste broncode te downloaden, opent u uw terminal en voert u de volgende opdracht uit:
wget http://download.joedog.org/siege/siege-latest.tar.gz
De bron extraheren en voorbereiden
Zodra het downloaden is voltooid, is het uitpakken van de inhoud van het archief de volgende stap. Voer het volgende commando uit om dit te bereiken:
tar -xvf siege-latest.tar.gz
Met deze opdracht wordt de Siege-broncode in een map gedecomprimeerd. Navigeer naar deze map met:
cd siege-*/
Het is de moeite waard om op te merken dat de exacte mapnaam per Siege-versie kan variëren. Zorg ervoor dat u zich in de juiste map bevindt voordat u verder gaat.
Voordat u in het compilatieproces duikt, is het raadzaam om dit te doen installeer het zlib-pakket, wat helpt bij de compressie en decompressie van gegevens:
sudo apt install zlib1g-dev
Compileer en installeer Siege Binary
Nu start u het compilatie- en installatieproces vanuit de Siege-bronmap. Met de onderstaande reeks opdrachten worden de build-instellingen geconfigureerd, de broncode gecompileerd en vervolgens Siege op uw Ubuntu-systeem geïnstalleerd:
./configure --with-zlib
make
sudo make install
Deze opdrachten configureren de bouwopties, compileren de broncode en installeren Siege op uw Debian-systeem.
Belegeringsinstallatie verifiëren
Na de installatie is het essentieel om te controleren of Siege correct is geïnstalleerd. Bovendien kan het controleren van de geïnstalleerde versie inzicht geven in de compatibiliteit ervan met specifieke functies of plug-ins en u informeren of toekomstige updates nodig zijn.
Om na te gaan welke versie van Siege op uw systeem is geïnstalleerd, voert u het volgende uit:
siege --version
Configureer Siege op Ubuntu
Het correct configureren van Siege is essentieel om optimaal te kunnen functioneren en zijn mogelijkheden volledig te kunnen benutten. Dit proces omvat het wijzigen van het Siege-configuratiebestand .siegerc, dat zich in de homedirectory bevindt.
Het belegeringsconfiguratiebestand zoeken
Het siegerc-bestand is een belangrijk bezit en dient als controlecentrum voor de operatie van Siege. Het omvat een groot aantal parameters die het gedrag van de tool bepalen. Deze parameters omvatten het aantal gesimuleerde gebruikers, de vertraging tussen aanvragen en het logboekregistratieniveau.
Laten we beginnen met het verkennen van het bestaande siegerc-bestand. U kunt dit bereiken door het cat-commando uit te voeren:
cat /etc/siege/siegerc
Configureer het Siege-configuratiebestand
U moet het bestand openen met een teksteditor om de Siege-configuratie aan te passen aan uw specifieke gebruiksscenario. In deze handleiding gebruiken we Nano vanwege zijn gebruiksvriendelijkheid en eenvoud.
Met het onderstaande commando kunt u het siegerc-bestand in de nano-teksteditor openen:
sudo nano /etc/siege/siegerc
Dit bestand is een schat aan configureerbare opties, maar we zullen ons concentreren op enkele van de meest gebruikte parameters:
- uitgebreid: bepaalt of de gedetailleerde uitvoer wordt weergegeven (true) of niet (false).
- csv: Geeft aan of de uitvoer in CSV-formaat moet zijn (true) of niet (false).
- gelijktijdig: specificeert het aantal gesimuleerde gebruikers voor de belastingstest.
- tijd: Bepaalt de duur van de belastingstest.
- vertraging: Stelt de tijdsvertraging in tussen het verzoek van elke gebruiker.
- internet: Simuleert gebruikersgedrag door willekeurige URL's op een website te vinden (waar) of niet (onwaar).
- benchmark: Hiermee kan Siege als benchmarktool worden uitgevoerd (waar) of niet (false).
Als u bijvoorbeeld een scenario wilt opzetten waarin 25 gebruikers worden gesimuleerd, elke gebruiker elke seconde een verzoek verzendt en het testen 1 uur duurt, wijzigt u de relevante parameters als volgt:
verbose = false
csv = true
concurrent = 25
time = 1H
delay = 1S
internet = false
benchmark = false
Nadat u de gewenste wijzigingen heeft aangebracht, kunt u opslaan en afsluiten door op Ctrl+X te drukken, gevolgd door Y om het opslaan van de wijzigingen te bevestigen, en vervolgens op Enter te drukken.
HTTP-belastingstest met Siege op Ubuntu
Nu we Siege hebben geïnstalleerd en geconfigureerd, gaan we enkele praktische voorbeelden bekijken om u een concreet idee te geven van hoe deze tool werkt. In deze demonstraties onderwerpen we uw webserver aan een stresstest, waarbij we een stortvloed aan verzoeken simuleren, in tegenstelling tot een DDoS-aanval.
Dit kan zeer waardevol zijn om te begrijpen hoe uw website met veel verkeer omgaat. Zorg echter wel voor de benodigde toestemmingen en gebruik deze tools op verantwoorde wijze. Idealiter zouden ze alleen op uw servers moeten worden gebruikt.
BenchMark Load Test-website met Siege
Pas eerst Siege toe om een website te testen met het standaardaantal gesimuleerde gebruikers (ook wel 'werknemers' genoemd), namelijk 25. We stellen ook de duur van de stresstest in op één minuut. Dit wordt bereikt door de vlag -t 1m te gebruiken, zoals weergegeven in de onderstaande opdracht:
siege https://www.example.com -t 1m
Zodra u dit commando uitvoert, start Siege de stresstest, waarbij gedurende 1 minuut 25 gelijktijdige gebruikers worden gesimuleerd die verzoeken naar uw site sturen. Nadat de test is afgerond, zal Siege een gedetailleerd rapport met de resultaten presenteren.
Houd er rekening mee dat het uitvoeren van de test voor betekenisvollere en nauwkeurigere inzichten meestal het beste is gedurende 5 tot 15 minuten. De duur van 1 minuut was uitsluitend bedoeld voor demonstratiedoeleinden.
Om het aantal werkers te vergroten, kunt u de vlag -c gebruiken, gevolgd door het gewenste aantal. Om bijvoorbeeld 100 werknemers te simuleren, gebruikt u de vlag -c 100:
siege https://www.example.com -c 100 -t 2m
Meerdere websites stresstesten met Siege
Als u systeembeheerder bent of meerdere domeinen beheert, zult u blij zijn te weten dat Siege meerdere websites tegelijk kan beheren. Dit is mogelijk via een configuratiebestand /etc/siege/urls.txt, dat Siege kan gebruiken om te bepalen welke websites aan een stresstest moeten worden onderworpen.
Om dit bestand te configureren, opent u het met nano
:
sudo nano /etc/siege/urls.txt
Voer vervolgens de URL's in van de websites die u wilt stresstesten:
https://www.example.com
https://www.example2.com
http://192.168.50.1
Om deze wijzigingen op te slaan en af te sluiten, drukt u op Ctrl+O, Enter en vervolgens op Ctrl+X.
Om ten slotte de stresstest op de opgegeven websites te starten, voert u de volgende opdracht uit:
siege -f /etc/siege/urls.txt
Extra belegeringsopdrachten op Ubuntu
Siege gaat niet alleen over het bombarderen van uw servers met verzoeken; het is een veelzijdige tool die veel opties biedt, waardoor u uw testaanpak kunt aanpassen. Van het controleren van het aantal gelijktijdige gebruikers tot het aanpassen van de vertraging tussen elk verzoek: met de opdrachtopties van Siege kunt u verschillende scenario's modelleren.
In dit gedeelte maak je kennis met aanvullende Siege-commando's waarmee je genuanceerdere en gedetailleerdere tests kunt uitvoeren.
Beheersing van de vertraging tussen verzoeken met belegering
Met Siege kunt u een vertraging introduceren tussen de verzoeken van elke gebruiker om realistischer gebruikersgedrag te simuleren. Dit zorgt ervoor dat verzoeken niet continu zonder pauzes worden verzonden.
Bijvoorbeeld in de onderstaande opdracht:
siege https://www.example.com -c 50 -d 5
Siege krijgt de opdracht om de gespecificeerde website te testen met 50 gelijktijdige gebruikers, waarbij een vertraging van 5 seconden wordt geïntroduceerd tussen het verzoek van elke gebruiker.
HTTP-methode en headers aanpassen met Siege
Met Siege kunt u de HTTP-methode en headers van uw stresstest aanpassen. Mogelijk wilt u bijvoorbeeld een POST-verzoek met aangepaste headers verzenden. Met de vlag -H kunt u aangepaste headers instellen, terwijl u met de optie –method de HTTP-methode kunt instellen. Zo kunt u deze opties gebruiken:
siege --method="POST" -H "Content-Type: application/json" https://www.example.com
In de bovenstaande opdracht gebruiken we de POST-methode en stellen we de Content-Type header in op application/json voor onze verzoeken.
Resultaten registreren met Siege
Mogelijk wilt u de resultaten van uw stresstest vastleggen voor verdere analyse of archivering. Siege kan de testresultaten naar een logbestand schrijven met de -l
keuze:
siege -l https://www.example.com
Met dit commando vertelt Siege dat hij de resultaten van de stresstest moet loggen. Standaard schrijft Siege de logboeken naar een bestand met de naam siege.log in uw thuismap.
Afsluitende gedachten
Nu Siege met succes op uw Ubuntu-systeem is geïnstalleerd, kunt u uw webservers effectief benchmarken en stresstesten. Of u nu kiest voor het gemak van de standaard Ubuntu-repository of voor de flexibiliteit om rechtstreeks vanaf de bron te installeren, Siege biedt een betrouwbare toolset om ervoor te zorgen dat uw webapplicaties optimaal presteren onder belasting. Update Siege regelmatig om te profiteren van nieuwe functies en verbeteringen, en gebruik het om de stabiliteit en prestaties van uw webservers te behouden.