Siege ist ein Open-Source-Regressionstest- und Benchmark-Dienstprogramm. Es kann eine einzelne URL mit einer benutzerdefinierten Anzahl simulierter Benutzer einem Stresstest unterziehen, oder es kann viele URLs in den Speicher einlesen und sie gleichzeitig einem Stresstest unterziehen. Das Programm meldet die Gesamtzahl der aufgezeichneten Treffer, die übertragenen Bytes, die Antwortzeit, die Parallelität und den Rückgabestatus. Siege unterstützt die Protokolle HTTP/1.0 und 1.1, die GET- und POST-Direktiven, Cookies, Transaktionsprotokollierung und Basisauthentifizierung. Seine Funktionen sind für jeden Benutzer konfigurierbar.
Die meisten Funktionen sind mit Befehlszeilenoptionen konfigurierbar, die auch Standardwerte enthalten, um die Komplexität des Programmaufrufs zu minimieren. Siege ermöglicht es Ihnen, einen Webserver mit n Benutzern t-mal zu belasten, wobei n und t vom Benutzer definiert werden. Es erfasst die Dauer des Tests sowie die Dauer jeder einzelnen Transaktion. Es meldet die Anzahl der Transaktionen, die verstrichene Zeit, die übertragenen Bytes, die Antwortzeit, die Transaktionsrate, die Parallelität und die Häufigkeit, mit der der Server OK geantwortet hat, also den Statuscode 200.
Siege wurde von Jeffrey Fulmer in seiner Position als Webmaster für Armstrong World Industries entworfen und implementiert. Es wurde teilweise nach dem Vorbild von „folter.pl“ von Lincoln Stein gestaltet und die Datenberichte sind nahezu identisch. Folter.pl erlaubt jedoch nicht, viele URLs gleichzeitig zu betonen; Aus dieser Not heraus wurde Belagerung geboren...
Wenn ein HTTP-Server von dem Programm angegriffen wird, spricht man von einem „Belagerungszustand“.
Siege wurde sowohl für Webentwickler als auch für Websystemadministratoren geschrieben. Es ermöglicht diesen Personen, ihre Programme und Systeme unter Zwang zu testen. Als Webprofi sind Sie für die Integrität Ihres Produkts verantwortlich, haben jedoch keine Kontrolle darüber, wer darauf zugreift. Es kann jederzeit zu Verkehrsspitzen kommen. Woher wissen Sie, ob Sie vorbereitet sind?
Mit Siege können Sie diese Programme unter Druck setzen, um besser zu verstehen, welcher Belastung sie standhalten können. Sie werden besser schlafen, wenn Sie wissen, dass Ihre Website der Last von 400 gleichzeitigen Transaktionen standhalten kann, wenn Ihre Website derzeit einen Spitzenwert von 250 erreicht.
Eine Transaktion ist dadurch gekennzeichnet, dass der Server einen Socket für den Client öffnet, eine Anfrage bearbeitet, Daten über die Leitung bereitstellt und den Socket nach Abschluss schließt. Es ist wichtig zu beachten, dass MENSCHLICHE Internetnutzer Zeit brauchen, um die Daten zu verarbeiten, die zu ihnen zurückkommen. Siege-Benutzer tun dies nicht. In der Praxis habe ich herausgefunden, dass 400 gleichzeitige Siege-Benutzer in echten Internetsitzungen mindestens dem Fünffachen dieser Anzahl entsprechen. Aus diesem Grund können Sie bei Siege eine Verzögerung festlegen ( --delay=NUM ). Wenn diese Einstellung festgelegt ist, schläft jeder Belagerungsbenutzer für eine zufällige Anzahl von Sekunden zwischen 1 und NUM. Anhand Ihrer Serverprotokolle sollten Sie in der Lage sein, die durchschnittliche Verweildauer auf einer Seite zu ermitteln. Es wird empfohlen, diese Nummer für Ihre Verzögerung zu verwenden, wenn Sie die Internetaktivität simulieren.
Die neueste Version von Siege kann über anonymes FTP heruntergeladen werden: http://download.joedog.org/siege/siege-latest.tar.gz
Das Quell-Repository befindet sich auf GitHub: Git-Klon https://github.com/JoeDog/siege.git
Sie können es hier in Ihrem Browser ansehen: https://github.com/JoeDog/siege
Updates und Ankündigungen werden über JoeDog verteilt: http://www.joedog.org/
Siege wurde mit GNU Autoconf erstellt. Wenn Sie mit der GNU-Software vertraut sind, sollten Sie mit der Installation von Siege vertraut sein. Weitere Informationen finden Sie in der Datei INSTALL.
Um die HTTPS-Unterstützung zu aktivieren, müssen Sie sowohl openssl als auch openssl-devel auf Ihrem System installieren.
Um die gzip-Übertragungskodierung zu aktivieren, müssen sowohl zlib als auch zlib-devel auf Ihrem System installiert sein.
Alle Voraussetzungen müssen zur Kompilierungszeit installiert sein. Wenn Sie die Bibliotheken hinzufügen, nachdem Siege kompiliert wurde, müssen Sie ./configure, make und make install erneut ausführen.
Belagerungsvoraussetzungen sind keine Abhängigkeiten. Wenn diese Bibliotheken nicht vorhanden sind, wird die Anwendung trotzdem kompiliert und funktioniert. Es wird diese Funktionalitäten einfach nicht enthalten.
Die Dokumentation ist in den Manpages siege(1)layingsiege(1) verfügbar. Ein HTML-Handbuch ist in dieser Distribution enthalten: manual.html
Die vollständige Dokumentation zur Belagerung finden Sie unter www.joedog.org
Vollständige Lizenzinformationen finden Sie in der Datei COPYING.
Copyright (C) 2000-2023 von Jeffrey Fulmer [email protected]
Es wird jedem die Erlaubnis erteilt, wörtliche Kopien dieses Dokuments in der erhaltenen Form auf einem beliebigen Medium anzufertigen oder zu verbreiten, vorausgesetzt, dass der Urheberrechtshinweis und dieser Erlaubnishinweis erhalten bleiben und somit dem Empfänger wiederum die Erlaubnis zur Weiterverbreitung erteilt wird.
Es wird die Erlaubnis erteilt, geänderte Versionen dieses Dokuments oder Teile davon unter den oben genannten Bedingungen zu verbreiten, sofern sie außerdem deutliche Hinweise enthalten, aus denen hervorgeht, wer sie zuletzt geändert hat.
Darüber hinaus erteilen die Urheberrechtsinhaber als besondere Ausnahme die Erlaubnis, den Code von Teilen dieses Programms unter bestimmten Bedingungen, wie in jeder einzelnen Quelldatei beschrieben, mit der OpenSSL-Bibliothek zu verknüpfen und verknüpfte Kombinationen einschließlich der beiden zu verbreiten.
Sie müssen die GNU General Public License in jeder Hinsicht für den gesamten verwendeten Code außer OpenSSL befolgen. Wenn Sie Dateien mit dieser Ausnahme ändern, können Sie diese Ausnahme auf Ihre Version der Datei(en) erweitern, sind dazu jedoch nicht verpflichtet.
Wenn Sie dies nicht möchten, löschen Sie diese Ausnahmeanweisung aus Ihrer Version. Wenn Sie diese Ausnahmeanweisung aus allen Quelldateien im Programm löschen, löschen Sie sie auch hier.