Mit curl die Responsezeit der Website ermitteln

Die „Time To First Byte (TTFB)“ ist ein Synonym für die Gesamtzeit die benötigt wird, bis das erste Byte Daten beim Nutzer eintrifft.

Gründe für einen hohen Time-To-First-Byte-Wert können unterschiedlich sein:

* hohe Latenzzeit (im Netzwerk)
* langsame DNS Lookups
* Probleme bei der SSL Verschlüsselung (Konfigurationsprobleme)
* Datenbankperformance
* Festplatte / IO
* Page rendering / compiling

Um die diversen Zeiten die für den TTFB entscheidend sind zu beurteilen, müssen wir sie zunächst einmal kennen. Mit dem folgenden Codesnippet und der Hilfe von Curl können wir die regelmäßig testen.

Bauen wir uns ein template zur Zeitmessung mit Curl:

nano curl-format.txt

.. und dann dies einfügen:

 time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\nn

… das ganze speichern – und fertig!

curl -w „@curl-format.txt“ -o /dev/null -s „https://www.devilweb.de/“

 

Die zeitmessung sollte nun etwa so aussehen:

# curl -w "@curl-format.txt" -o /dev/null -s "https://www.devilweb.de.de/"
time_namelookup:  0.128
       time_connect:  0.166
    time_appconnect:  0.000
   time_pretransfer:  0.000
      time_redirect:  0.000
 time_starttransfer:  0.000
                    ----------
         time_total:  0.201

Bedeutung der Curl Variablen, von time_namelookup bis time_starttransfer

time_namelookup – Die Zeit in Sekunden gemessen bis das Auflösen der DNS abgeschlossen ist.

time_connect – Die Zeit in Sekunden gemessen bis die TCP Verbindung zum Webserver oder Remote Host abgeschlossen ist.

time_appconnect – Die Zeit in Sekunden gemessen bis die HTTP/SSL Verbindung zum Webserver beendet wurde.

time_pretransfer – Die Zeit in Sekunden gemessen bis der Dateitransfer begonnen hat.

time_redirect – Die Zeit in Sekunden gemessen bis alle Weiterleitungen abgeschlossen sind (beinhaltet time_namelookup, time_connect, time_appconnect und time_pretransfer).

time_starttransfer – Die Zeit in Sekunden gemessen bis der Transfer des ersten Bytes abgeschlossen ist (beinhaltet den time_pretransfer).

time_total – Die Zeit in Sekunden gemessen bis alle Operationen beendet wurden.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.