Testen von Webservern mit dem Siege Benchmarking Tool
Zu wissen, wie viel Traffic Ihr Webserver unter Last bewältigen kann, ist für die Planung des zukünftigen Wachstums Ihrer Website oder Anwendung unerlässlich. Mit dem Tool Siege können Sie einen Auslastungstest auf Ihrem Server durchführen und sehen, wie Ihr System unter verschiedenen Umständen funktioniert.
Sie können Siege verwenden, um die Menge der übertragenen Daten, die Antwortzeit, die Transaktionsrate, den Durchsatz, die Parallelität und die Häufigkeit, mit der der Server Antworten zurückgegeben hat, auszuwerten. Das Tool verfügt über drei Modi, in denen es arbeiten kann – Regression, Internetsimulation und Brute-Force.
Wichtig: Siege sollte nur gegen Server ausgeführt werden, die Sie besitzen oder auf denen Sie explizite Erlaubnis zum Testen haben. In einigen Ländern kann die Belagerung nicht autorisierter Websites als Verbrechen angesehen werden.
Installieren des Siege HTTP Load Testing Utility unter Linux
Siege ist plattformübergreifend und kann unter den Distributionen Ubuntu/Debian und CentOS/RHEL mit den folgenden Befehlen installiert werden.
Um Siege unter Debin/Ubuntu zu installieren, können Sie Folgendes ausführen:
$ sudo apt install siege
Für CentOS/RHEL müssen Sie das Repository installieren und aktivieren, um Siege zu installieren:
# yum install epel-release
yum install siege
Alternativ kannst du die Belagerung aus der Quelle bauen. Zu diesem Zweck müssen Sie build-essential und development-Pakete installiert haben.
$ sudo apt install build-essential #Ubuntu/Debian
yum groupinstall 'Development Tools' #CentOS/RHEL
Dann können Sie Siege mit dem Befehl wget herunterladen und wie gezeigt aus den Quellen installieren.
$ 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
Konfigurieren des Siege HTTP Load Testing Utility unter Linux
Sobald du die Installation abgeschlossen hast, kannst du deine Belagerungskonfigurationsdatei anpassen. Es befindet sich in /etc/siege/siegerc. Falls Sie sich entschieden haben, das Paket aus dem Quellcode zu erstellen, müssen Sie Folgendes ausführen:
$ sudo siege.config
Dies wird die Datei siege.conf erzeugen, die sich im Zuhause Ihres Benutzers ~/.siege/siege.conf befindet.
Der Inhalt der Datei sollte in etwa wie folgt aussehen. Beachten Sie, dass ich die Logfile- und Zeitanweisungen auskommentiert habe:
# cat siegerc |egrep -v "^$|#"
Beispiel-Ausgabe
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
Mit der aktuellen Konfiguration imitiert "Belagerung" 25 gleichzeitige Benutzer über einen Zeitraum von 1 Minute.
Ihr seid jetzt bereit, eure Belagerung zu starten.
Testen des Ladens von Websites mit dem Siege Benchmarking Utility
Das Ausführen von Siege ist recht einfach, Sie müssen nur die Website angeben, die Sie testen möchten, und zwar wie folgt:
# siege example.com
Wenn die Verfügbarkeit bei 100 % bleibt und es keine fehlgeschlagenen Verbindungen gibt, hat Ihr System gut funktioniert und es gab keine Probleme. Auch die Reaktionszeit sollten Sie im Auge behalten.
Belagerung mehrerer Websites
Sie können mehrere URLs testen, indem Sie siege so einstellen, dass sie aus der Datei gelesen werden. Sie können die URLs in /usr/local/etc/urls.txt wie folgt beschreiben:
Um nun siege anzuweisen, die URLs aus der Datei zu testen, verwenden Sie die Option -f wie folgt:
# siege -f /usr/local/etc/urls.txt
Sie können auch Befehlszeilenoptionen verwenden, wenn Sie andere Einstellungen als die in der Konfigurationsdatei beschriebenen ausprobieren möchten.
-C– Geben Sie Ihre eigene Konfigurationsdatei an.-q– unterdrückt die Ausgabe von Siege.-g– GET, HTTP-Header nach unten ziehen und die Transaktion anzeigen. Nützlich zum Debuggen.-c– die Anzahl der gleichzeitigen Benutzer, der Standardwert ist 10.-r– wie oft der Test ausgeführt werden soll.-t– wie viel Zeit für die Ausführung des Tests benötigt wird. Sie können S, M oder H ex: –time=10S für 10 Sekunden angeben.-d– zufällige Verzögerung vor jeder Anforderung.-b– keine Verzögerungen zwischen den Anfragen.-i– Benutzersimulation. Wird verwendet, um zufällige URLs zu treffen.-f– URLs aus der angegebenen Datei testen.-l– Protokolldatei.-H– Fügen Sie der Anforderung einen Header hinzu.-A– Geben Sie einen Benutzeragenten an.-T– Legt den Inhaltstyp in der Anforderung fest.--no-parser– KEIN PARSER, schaltet den HTML-Seiten-Parser aus.--no-follow– HTTP-Weiterleitungen nicht befolgen.
Schlussfolgerung
Siege ist ein leistungsstarkes Tool, um die Zuverlässigkeit Ihres Systems bei hoher Last zu messen. Es kann von Webentwicklern verwendet werden, um ihren Code zu testen, wenn die Website unter Druck steht. Sie sollten Ihre Tests immer mit Vorsicht ausführen, da der getestete Server während der Evaluierung möglicherweise nicht mehr zugänglich ist.

