Die Belastbarkeit des eigenen Servers zu testen, gibt gute Rückschlüsse darauf, wie bei einem hohen Besucheransturm reagiert wird. Ich habe einen Dienst getestet und möchte das Ergebnis natürlich teilen.
Wie in diesem Artikel bereits erwähnt, habe ich meine Seiten prinzipiell auf Nginx als Webserver und Memcached als Cachingmethode umgestellt. Statische Dateien werden nun direkt aus dem Arbeitsspeicher des Servers geladen. Dies dient zum einen dazu, die Geschwindigkeit zu erhöhen und den Server bei hohem Besucheraufkommen deutlich zu entlasten.
Server mit blitz.io auf Belastbarkeit testen
Der Dienst blitz.io bietet jedem die Möglichkeit, die eigene Seite auf Belastbarkeit zu testen. Je nach gewünschter Einstellung, können mehrere tausend Besucher über einen ebenfalls frei wählbaren Zeitraum die angegebene Seite besuchen. Hierbei wird dann die durchschnittliche Ladezeit der Seite und auch mögliche Timeouts detailliert angezeigt.
Bei der Anmeldung muss man sich als Domaininhaber verifizieren, damit nicht jede beliebige Seite unter “DDoS” gesetzt werden kann. Ich entschied mich für die Methode des HTML-Dokuments, klickte auf den Link und schon konnte es losgehen.
Als Methode wählen wir den “get”-Parameter und bei dem Auswahlpunkt der Region, entscheiden wir uns für das Land, dass sic bei uns in der Nähe befindet. In meinem Fall war es Irland. Die Timeout-Grenze habe ich auf 1000 ms festgelegt, sprich sobald der Seitenaufbau länger als eine Sekunde dauert, wird ein Timeout protokolliert. Die Grenze ist, je nach Seite, relativ niedrig und kann beliebig angepasst werden.
Wir starten mit 250 Benutzers gleichzeitig und steigern uns dann, bis zu der 1000er Marke. Als Testdauer habe ich 380 Sekunden gewählt.
Die Auswertung des Tests ergab folgendes Ergebnis.
Wir sehen also, dass in den 380 Sekunden, insgesamt 114,328 Klicks auf die Seite stattgefunden haben, die zusammen knapp 4GB Datenverkehr generiert haben. Die Reaktion der Seite verhielt sich meiner Meinung nach, auch bei hoher Belastung, sehr gut mit 669ms. Während des Tests hatte ich zudem ein Monitoringtool laufen, dass mir die Auslastung während des Tests anzeigte. Überrascht war ich hier, da die Last kaum spürbar angestiegen ist. (Auslastung der CPU um 4%, der RAM um 2%).
Ich habe mir natürlich versucht, die Timeouts zu erklären und bin auch zu einem Ergebnis gekommen, das glücklicherweise nichts mit falschen Cachingeinstellungen oder ähnlichem zu tun hat -> Die Bandbreite am Server!
Meinen vServer, den ich von Contabo habe, besitzt folgende Leistungsmerkmale:
- 8GB RAM
- 2 Kerne mit je 3,2 Ghz
- Debian als Betriebssystem
- 100 Mbit-Anbindung
In diesem Fall war der Flaschenhals scheinbar wirklich nur die Bandbreite. Wäre eine Gigabitanbindung vorhanden, sollte das Resultat um einiges schöner aussehen. Natürlich hätte es auch hier geholfen, wenn ich in den Testeinstellungen den Timeout auf über 1000ms gesetzt hätte – doch wir haben ja Ansprüche, gell? :D
Was kostet blitz.io?
Sofern man damit leben kann, einmal monatlich 10 Credits umsonst zu bekommen, nichts. Möchte man hingegen besonders schwere Geschütze auffahren und den Server mit 50.000 Besuchern gleichzeitig ärgern, benötigt man auch ein ebenso hohes Creditkonto, was einiges an Kosten verursacht.
Für meinen Geschmack sind 10 Credits völlig ausreichend und ideal um neue Einstellungen am Server zu testen.
Hat schon einmal jemand diesen, oder einen vergleichbaren dienst getestet? Falls ja, wie sind eure Erfahrungen?