Aus Linux-Magazin 12/2016

Aus dem Alltag eines Sysadmin: Httpstat

Abbildung 1: Die Seite, die Httpstat hier per HTTP anfordert und rasend schnell erhält, ist in Wirklichkeit nur eine Fehlermeldung.

Kolumnist Charly Kühnast hält diesmal eine Spezial-Stoppuhr in der Hand: Httpstat. Damit spürt er Webservern hinterhier, wie lange die brauchen, um eine statische oder dynamische HTML-Seite auszuliefern. Sichtbar werdende Hänger deuten auf Optimierungpotenzial beim Server hin.

Httpstat ist ein Python-Skript, das sich als Wrapper um Curl legt. Von Python 2 oder 3 und Curl abgesehen gibt es keine weiteren Abhängigkeiten. Ich hole es einfach aus dem Github-Repository:

wget https://raw.githubusercontent.com/reorx/httpstat/master/httpstat.py

Wer den Python-Installer Pip installiert hat, bekommt das Skript auch mittels »pip install httpstat« . Der Aufruf ist simpel: »python httpstat.py URL« oder, wenn man Httpstat per Pip installiert hat, »httpstat URL« Bei der URL darf ich »http://« auch weglassen, das »https://« bei TLS- gesicherte Webseiten jedoch nicht.

In Abbildung 1 misst Httpstat einen unverschlüsselten Aufruf. Die 4 Millisekunden, in denen der DNS antwortet, sind ein super Wert. Der entsteht, weil der Name der Site im Cache meines lokalen Dnsmasq liegt. Sobald mein Rechner den DNS meines Providers bemühen muss, steigt der Wert auf 80 bis 200 Millisekunden. Der TCP-Handshake liegt mit 22 Millisekunden im üblichen Rahmen.

Die Zeit, die der Server braucht, um die Seite zusammenzustellen (“Server Processing”), zeigt, ob im Webserver noch Optimierungspotenzial schlummert. Mein Beispiel eben ist nicht repräsentativ, denn der Server liefert statt HTML: »301 – Moved Permanently« – bitte die Seite per HTTPS aufrufen. Ein Browser würde das eigenständig tun, Curl nicht.

Abbildung 2 fordert die gleiche Seite per HTTPS an. Lookup und TCP-Wert bleiben gleich, der TLS-Handshake aber dauert – für diese statische Seite – ewig. Für eine große Seite mit viel dynamischen Inhalten und Werbebannern kann der Wert auf mehrere Sekunden hochgehen.

Abbildung 1: Die Seite, die Httpstat hier per HTTP anfordert und rasend schnell erhält, ist in Wirklichkeit nur eine Fehlermeldung.

Abbildung 1: Die Seite, die Httpstat hier per HTTP anfordert und rasend schnell erhält, ist in Wirklichkeit nur eine Fehlermeldung.

Abbildung 2: Per HTTPS angefordert kommt die wirkliche HTML-Seite – was nun sichtbar länger dauert.

Abbildung 2: Per HTTPS angefordert kommt die wirkliche HTML-Seite – was nun sichtbar länger dauert.

Httpstat ist nicht über Kommandozeilen-Parameter steuerbar, denn die kämen bei Curl an. Ich kann das Tool aber über Umgebungsvariablen beeinflussen. Mit

export HTTPSTAT_SHOW_SPEED=true

zeigt Httpstat die Geschwindigkeit an, mit der die Webseite anlandet:

speed_download: 219.6 KiB/s, speed_upload: 0.0 KiB/s

Die Homepage [1] erklärt alle Variablen; dort gibt auch Links zu in Go, Bash oder PHP implementierten Httpstats.

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
Nach oben