Ist Ihre Webseite schnell genug?

Eine der kritischen Fragen, die ich bei der Arbeit immer wieder beantworten muss: Welchen Server brauche ich? Und auch wenn man sich verschiedene Anbieter von Webservern anschaut, so herrscht hier eine echte Inflation. Server mit Gigabyteweise Speicher, Terrabyteweise Plattenplatz werden angeboten. Aber — wie viel Server braucht der Mensch?

Unabhängige Untersuchungen zeigen wiederholt, dass Abbrüche bei Warenkörben in langsamen Shopsystemen häufiger sind als bei normalen. Ein Experiment von Google mit einer verzögerten Antwort der Suchergebnisse hat die Anzahl der Suchanfragen dort deutlich reduziert. Interessant ist hier auch http://blog.kissmetrics.com/loading-time/

Daher muss eine Webseite schnell sein. Wie kann ich feststellen, ob meine Webseite schnell ist? Man muss also ein System installieren und dann schauen, ob es den Anforderungen genügt. Zum Glück gibt es einige Webhosting/VPN/Server Anbieter mit Geld zurück Garantie oder mit kurzer Vertragslaufzeit. Alternativ könnte man glauben, dass man einfach so vorgeht, dass man die CPU Leistung der Entwicklungsmaschine ausmisst und daraus dann irgendwie ausrechnet wie viel Leistung man braucht. Diese Modell zur Vorhersage taugt aber nur wenig.

Wenn man nun seine Applikation am Laufen hat, muss man festlegen welche Parameter man anlegt. In der Praxis hat sich herausgestellt, dass eine Antwortzeit von 100ms oder besser gar nicht als Verzögerung wahrgenommen wird, sondern als unmittelbare Antwort betrachtet wird. 500 ms gelten als erträglich, was darüber hinaus geht gilt schon als langsam und führt zu vereinzelten Abbrüchen. Mit diesem Wissen können wir nun eine Seite beim installierten Webserver abfragen und die Zeit bestimmen, bis die Antwort kommt. Für einzelne Seiten kann man dies mit Yslow, einem Plug in von Yahoo für firefox, chrome und andere verbreitete Server. Die Ergebnisse sind hier oftmals überraschend und zeigen oftmals schon einige Schwächen der Webseite an, die zu Verzögerungen bei der Auslieferung kommen. Yslow gibt dabei auch schon wichtige Tips wie sich die Geschwindigkeit verändern lässt. Oftmals sind nur kleine Veränderungen am html Code notwendig.

Yslow testet eine Seite unabhängig von der eigentlichen Last die durch andere auf den Servern verursacht wird. Es gibt zwar interessante Hinweise, aber letztlich wird dies nicht ausreichen um die Qualität unserer Webseite, wie sie auf dem Server läuft zu beurteilen. Hierzu ist es auch notwendig nicht nur eine einzelne Seite, sondern alle Seiten zu beurteilen.

Noch ein kurzer Gedanke welche Seiten hier berücksichtigt werden. Ein Blick ins Logfile sollte zeigen welche Seiten wie oft aufgerufen werden. Man sollte also die dort vorkommenden häufigsten Seiten nehmen und gewichten und die Antwortzeit bestimmen.

Der Aufwand zur Bestimmung der Performance Messung steigt langsam an, ohne dass wir die „echten Werte bekommen“. Die bisherige Messung lässt vernachlässigt beispielsweise noch die Laufzeiten der Pakete vom Benutzer zum Server und zurück. Und diese Zeiten sind nicht zu vernachlässigen. Wenn wir die obigen Zahlen nehmen, so wird es nicht möglich sein einen Server in den USA zu betreiben und ihn hier als flüssig wahrzunehmen, weil schon die Laufzeiten der Pakete über den Atlantik hinweg mehr als 100 ms ausmachen. Wenn wir das Netzwerk einbeziehen, so ist es keine Frage der Serverspezifikation, sondern auch eine Frage dessen wie dieser Server „vernetzt“ ist. Spätestens an dieser Stelle hört typischerweise das Wissen auf. Wir können nicht genau sagen wo unsere Webseitenbenutzer sitzen, über welchen Provider sie angebunden sind und damit auch nicht wie schnell diese den Webserver erreichen.

Daher muss man sich einen anderen Weg aussuchen, um die ausreichende Leistung zu bestimmen. Daher ist es einfacher, wenn man im Betrieb Daten erfasst und daraus dann ableitet wie schnell oder wie langsam der Server ist. Man versucht also in der Applikation zu messen wie lang jede Anfrage ist. Um nicht durch eine Menge von Zahlen erschlagen zu werden, gibt es einen weit verbreiteten Standard nach dem gemessen wird wir gut oder wie schlecht die Antworten sind, der sogenannte Apdex score. Dieser Apdex score wird ermittelt in dem für jede abgerufene Seite die Zeit gemessen wird, bis der Webseitenbesucher seine Antwort erhält. Die Ergebnisse werden in 3 Klassen eingeteilt

1. Klasse: Antwort war schneller als 100 ms  – das ist die Klasse an Antworten, die vom Benuzter als „unmittelbare Antwort“ wahrgenommen wird.

2. Klasse: Antwort war scheller als 4x 100 ms – die Zeit gilt für den Kunden als „noch erträglich“. Es sind also die Zeiten bis zu 400 ms, eine etwas schärfere Aussage als die zuvor erwähnten 500ms.

3. Klasse: Antwort war langsamer als die oben genannten.

Ist es wünschenswert, dass die Anfragen alle zur 1. Klasse gehören, so zeigt die Praxis doch, dass viele Anfragen langsamer sind. Der Apdex score errechnet sich wie folgt.
Anteil der Anfragen der 1. Klasse + Anteil der Anfragen der 2. Klasse/2  . Man sagt also, dass man mit den Anfragen der 2. Klasse nur halb zufrieden ist und daher auch nur zur Hälfte gerechnet werden. Als Ergebnis erhält man den sogenannten Apdex score. Dieser Score hat einen Wert zwischen 0 und 1, wobei 1 eine perfekte Antwort wäre, eine 0 sagt aus, dass jede Antwort langsamer als 400 ms ist und somit als nicht aktzeptabel gilt. Wie immer ist eine Reduzierung auf einen solchen Wert mit ein bisschen Vorsicht zu geniessen. Nehmen wir an, wir haben einen Apdex Wert von 0.8. Dies könnte bedeuten. 80% der Anfragen werden super schnell beantwortet und sind in der 1. Klasse, 20% der Anfragen werden ganz langsam, bis hin zu gar nicht beantwortet. Die gleiche Anzahl würde man aber auch erreichen, wenn 60% der Anfragen in der ersten Klasse wären und 40% der Anfrage in der 2. Klasse. Ein Apdex Score von 0,85 gilt wird häufig als gut bis ausreichend betrachtet.

Wir haben gesehen, dass die Bestimmung eines  „welcher Server  ist ausreichend schnell“ nicht analytisch einfach zu bestimmen ist, sondern am einfachsten durch eine Messung einer existierenden Seite möglich ist. Um dies zuverlässig zu machen gibt es Anbieter wie New Relic, die durch einfache Plug Ins in unsere Anwendungen alle notwendigen Daten erfassen. Der Vorteil liegt darin, dass dieser Score die praxisrelevanten Daten mit erfasst, etwa auch die regionale Verteilung der Anfragen und welche Seiten von welchen Regionen abgefragt werden. Der Score bewertet nicht nur den Server selbst, sondern die gesamte Infrastruktur, die zur Antwort einbezogen wird, etwa die Geschwindigkeit der Nameserver, die Qualität der Netzanbindung. Es ist daher unsinnig einen Server rein nach den Serverparametern wie Speicher, CPU und Platten auszuwählen. Einige Aussagen lassen sich trotzdem schon treffen. Wählt man etwa einen Cloudanbieter, der die Seiten in den USA betreibt, so wird es schwierig sein eine Seite zu generieren, die vom Kunden als flüssig wahrgenommen wird. Anbieter mit besonders günstig erscheinenden Preise protzen zwar häufig mit Serverleistungen, müssen aber an anderen Stellen, etwa am Netz wieder sparen. Man muss also probieren, ob dort die entsprechende Leistung zu erzielen ist. Serverleistung ist aber auch hier nur ein kleiner Faktor für die Entscheidungsauswahl. Oftmals kann man die Antwortgeschwindigkeit auch noch mit weiteren Optimierungen , etwas Datenbankoptimierungen, Caching etc beeinflussen. Hier ist man oft auf einen professionellen Dienstleister angewiesen.

Unser Tip ist also. Entweder mehrere Provider ausprobieren und anhand des Apdex Scores bestimmen wie gut dieser Anbieter ist, oder einen Anbieter auswählen, der sich mit der Optimierung von Antwortzeiten auskennt.

Leave a Comment

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