Aus Linux-Magazin 12/2015

Aus dem Alltag eines Sysadmin: Gatling

Abbildung 1: Gatlings Logformat ist nicht 08/15, aber in Sachen Timing zielgenau.

Western-Kenner und Sysadmin-Kolumnist Charly führt gleich eine Gatling in ein Feld, auf dem normalerweise der Apache-Stamm seine Jagdgründe hat. Warum der Verschwörungsblogger Fefe die Schuld an dem Gemetzel trägt, wird im Verlauf der Story auch klar.

Wer wie ich als Kind (zu) viele Western gesehen hat, weiß, was eine Gatling ist: eine automatische Waffe mit mehreren rotierenden Läufen. Die Weißen nutzten ihren martialischen Lärm, um die Pferde angreifender Apachen in den galoppierenden Wahnsinn zu treiben. Das gelingt stets so lange, bis ein Häuptling sich von hinten anschleicht und ein Streichholz in die Munitionskiste wirft.

Als Schnellfeuerwaffe leiht die Gatling dem hier vorgestellten Webserver den Namen. Dessen Binary ist mit etwas mehr als 100 KByte im Gegensatz zum Paten aber ein Leichtgewicht. Auch der RAM-Bedarf ist mini, denn Gatling [1] forkt nicht. Auf einem alten PC ist Gatling genauso flott unterwegs wie auf meinem Raspberry Pi. Der Daemon gehört sogar zum Standard von Raspbian.

Der Server ist darauf getrimmt, statische Webseiten möglichst schnell auszuliefern. Dafür spendierte ihm sein Autor Felix “Fefe” von Leitner, dessen viel gelesenes Blog [2] selbstredend auf Gatling läuft, kaum mehr Features als Patronen in einen Revolver passen (IPv6, TLS/SSL, einfach möblierte virtuelle Hosts, Anmeldung über den ».htaccess« -Mechanismus).

Wer das Tool will, übersetzt es aus den Quellen. Zuvor bedarf es einer ebenfalls von Fefe implementierten IO-API-Bibliothek [3]. Ohne Parameter gestartet serviert Gatling die Daten aus dem aktuellen Verzeichnis. Treffgenauer ist:

gatling -u nobody -c /var/www

Nachdem sich Gatling Port 80 freigeschossen hat, lässt er seine Rootprivilegien fallen und macht als Nobody weiter – unter diesem Namen ging Terence Hill vor 42 Jahren durch die Saloontür [4]. Mit dem Chroot-Parameter »-c /var/www« bringt der Sheriff die Daten zur Schutzhaft ins County Jail. In Überzahl angreifende Stämme schlägt »-A Anzahl« in die Flucht, indem Gatling die Zahl der HTTP-Anfragen pro Minute und Client begrenzt.

Deine Zeit ist um, Django!

Das Logformat ist exotisch (Abbildung 1), hilft aber das Timing zu durchschauen. Eine HTTP-Verbindung läuft nach nerdigen 23 Sekunden in den Timeout (letzte Zeile). Meist ändere ich den Wert mit »-T Sekunden« auf 10 oder weniger Sekunden, damit Sockets möglichst schnell auf freien Fuß kommen. Denn ich fahre Gatling gern an dem Frontabschnitt auf, wo die Zugriffe wie Trommelfeuer reinprasseln und der mit statischem HTML antwortet: Etwa wenn eine Serverfarm in die Wartung geht (“Bitte später noch mal versuchen”) oder bei Blogs, die aus Static-Site-Generatoren purzeln.

Abbildung 1: Gatlings Logformat ist nicht 08/15, aber in Sachen Timing zielgenau.

Abbildung 1: Gatlings Logformat ist nicht 08/15, aber in Sachen Timing zielgenau.

Sogar ein einfacher FTP-Server ist in Gatling aktiv (und mit »-F« abschaltbar). Gebe ich dem FTP-Verzeichnis Schreibrechte für jedermann, funktionieren auch Uploads. Umgekehrt kann ich nur Dateien herunterladen, die ich lesen darf.

Mit Schützenhilfe einer Gatling fällt es jedem Nobody leicht, beim Abspann cool in den Sonnenuntergang zu reiten. (jk)

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben