Neben der Verfügbarkeit und der verfügbaren Hardwareressourcen spielt bei der Wahl des richtigen Server-Pakets bei einem Hoster natürlich auch die Netzanbindung eine bedeutende Rolle. Nur mit einer schnellen und zuverlässigen Anbindung lassen sich Fluten von Anfragen bewältigen. Da bei Hostern hier und da gerne getrickst oder nicht die erwartete Leistung bereitgestellt wird, ist ein kurzer Test der Netzwerk-Bandbreite zu empfehlen.
Für Desktop-Computer und Smartphones wird gerne das speedtest.net Netzwerk zusammen mit der gleichnamigen Website genutzt. Eine Flash-freie Alternative dazu wäre speedof.me, das auf HTML5 basiert. Da fähige Admins einen Linux Server natürlich niemals mit GUI administrieren würden ;) , sind die beiden Browser-basierten Speedtests jedoch uninteressant. Für speedtest.net gibt es zwar eine Python-Anwendung für das CLI – allerdings misst diese die Bandbreite für Up- und Downlink völlig unzuverlässig.
Also müssen wir auf herkömmliche Command Line Tools ausweichen, die Daten irgendwo down- oder uploaden und dabei die Geschwindigkeit messen. Ein sehr beliebtes und flexibles Tool ist das bekannte „curl“. Damit kann man Dateien z.B. via FTP herunterladen aber auch hochladen. Fehlt uns noch ein Kommunikationspartner, der uns Daten zum Download bereit stellt bzw. beim Upload entgegen nimmt.
Der Kommunikationspartner muss auf jeden Fall mehr Bandbreite zur Verfügung haben als unser Server, sonst würden die Tests verfälscht. Schließlich wäre dann unser Server nicht der limitierende Faktor, sondern der Server, der uns bei der Messung unterstützt. Außerdem sollte der Server nicht auf der anderen Seite der Welt liegen und sowohl Downloads als auch Uploads ermöglichen.
Bei meiner Recherche nach einem geeigneten Partnerserver bin ich schließlich auf das Unternehmen „Tele2“ gestoßen, das genau das bietet, was wir für einen aussagekräftigen Speedtest brauchen: Server u.A. in Frankfurt (also dem Herz des deutschen Internets), eine starke Anbindung (10 GBit/s) und die Möglichkeit, Dateien via FTP sowohl herunter zu laden, als auch hoch zu laden. Dazu noch einige File-Samples mit unterschiedlichen Größen von 100 MB bis 1 TB.
Für einen Test sollte bei einer üblichen Netzanbindung von vServern eine 1 GB Datei ausreichen. Sollte die Bandbreite des Servers doch so hoch sein, dass der Test zu kurz läuft, kann man natürlich auf die größeren Dateien wechseln.
Downloadgeschwindigkeit messen
curl ftp://speedtest.tele2.net/1GB.zip -o /dev/null
Die 1 GB große ZIP-Datei wird heruntergeladen und auf dem Server verworfen. Statt der Datei „1GB.zip“ könnt ihr beispielsweise auch „100MB.zip“ oder „1000GB.zip“ downloaden. Nach dem Download könnt ihr in der curl-Ausgabe die Durchschnittliche Downloadrate in MB/s (Megabyte pro Sekunde) ablesen:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1024M 100 1024M 0 0 10.2M 0 0:01:39 0:01:39 --:--:-- 14.4M
In diesem Fall waren es durchschnittlich 10,2 MB/s – Was in etwa einem 100 MBit/s Downlink entspricht. Das ist die übliche Geschwindigkeit bei Hostern für vServer.
Uploadgeschwindigkeit messen
Nun zum Upload: Für die Messung des Uplinks wird eine große Datei auf den Remoteserver geschickt. Dazu wird zuerst eine große .zip Datei heruntergeladen:
curl ftp://speedtest.tele2.net/1GB.zip -o speedtest.zip
… und dann wieder hochgeladen:
curl -T speedtest.zip ftp://speedtest.tele2.net/upload/
… und wieder gibt uns curl die Durchschnittsgeschwindigkeit aus:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1024M 0 0 100 1024M 0 34.4M 0:00:29 0:00:29 --:--:-- 61.5M
Hier wurde die 1 GB große Datei mit durchschnittlich 34,4 MB/s hochgeladen. Der Server hat also einen viel schnelleren Uplink als Downlink. So soll es i.d.R. sein.
(Update: Sollte Fehler „553: Could not create file“ auftreten, hängt an die FTP-Adresse noch einen beliebigen Dateinamen. z.B. so: ftp://speedtest.tele2.net/upload/4534545.zip)
Nach der Messung
Bevor man beim Hoster seine Beschwerde wegen zu niedriger Datenraten einreicht, sollte man jedoch mehrere Tests zu verschiedensten Tages- und Nachtzeiten durchgeführt haben – auch, um verfälschte Messungen zu relativieren, die möglicherweise zustande gekommen sind, weil der Testserver doch einmal an seine Belastungsgrenze gestoßen ist. 10 GBit/s sind zwar eine Menge, doch auch diese Bandbreite muss ggf. unter mehreren testenden Usern aufgeteilt werden. Testen zu viele User auf einmal, ist der Partnerserver auf einmal der Limitierende Faktor und nicht der eigene Server.
Ist die Datenrate auch nach mehrmaliger Messung zu niedrig, sollte mit anderen Admins auf anderen Servern / bei anderen Hostern verglichen werden. So kann man überprüfen, ob der Testserver chronisch überlastet ist. Dies wäre der Fall, wenn auch auf anderen Servern eine zu geringe Datenrate gemessen würde.
Hallo Thomas,
alternativ kann man hier große Dateien mit schneller Anbindung downloaden:
http://speedtest.belwue.net/http-dl.html
Grüße!
Wirklich zuverlässige Messungen lassen sich IMHO nur mittels iperf bzw iperf3 machen.
Da gibt es genügend Rädchen einzustellen um verschiedenste Szenarien testen zu können ;)
https://www.cmace.de
So ein Quatsch, damit testest du in vielen Fällen nur die Schreibgeschwindigkeit deiner Festplatte, auf welcher du das File speicherst. Lenk das File nach /dev/null, dann hast du halbwegs brauchbare Werte.
curl ftp://speedtest.tele2.net/1GB.zip -o /dev/null
https://legacy.thomas-leister.de/ueber-mich-und-blog/
Du hast natürlich recht. Da meine Server alle über eine sehr schnelle SSD verfügen, ist mir das auch nicht aufgefallen (und fällt hier auch nicht ins Gewicht). Ich werde das im Beitrag gleich korrigieren.
LG Thomas
Wenn deine Platten langsamer als das Netz sind, dann spricht das allerdings auch nicht gerade für deine Platten. Es ist eigentlich nur relevant bei sehr schnellen Anbindungen ab 1 GBit.
Ich habe das hier mal getestet und bei meinem Kabelanschluss (100 MBit) machte es keinen unterschied, ob ich das File auf Platte (SSD oder HDD) geschrieben habe oder nach /dev/null ;-)
Bei Hetzner (HDD und scheinbar 1 GBit) war der Unterschied dagegen schon spürbar: 670-700 MBit nach /dev/null statt 200-230 MBit auf Platte!
Zum Upload:
Der Fehler 553 scheint immer dann zu komen, wenn jemand schon ein File mit dem gleichen Namen hoch lädt (z. B. per Script von mehreren Servern ^^).
Das kann man mit folgendem Befehl geschickt umgehen:
curl -T speedtest.zip ftp://speedtest.tele2.net/upload/$(date +%N).zip