My-Hammer, das Fernsehen und die Serverlast: Teil 1

Dies ist Teil 1 der Artikelserie zum Thema Webseiten-Skalierung. Die anderen Teile:

Teil 1: Allgemeine Überlegungen
Teil 2: Datenbankoptimierung
Teil 2.1: Praxistipps Datenbank
Teil 3: Caching
Teil 4: Zukünftige Optimierungen (folgt)

Vergangenen Donnerstag zeigte das ProSieben Magazin Galileo einen ca. 10-minütigen Beitrag über My-Hammer (kurze Infos zur Sendung hier). Vom Ansatz her ging es um “Branchenbuch vs. My-Hammer”, aber für die Betrachtung hier ist das gar nicht so sehr von Interesse - es ist noch nichtmal von Interesse, ob so ein Beitrag positiv oder negativ für uns ist (in dem Fall war’s wie fast immer positiv) - sobald das Magazin, in dem über uns berichtet wird, genug Reichweite hat, schießen die Zugriffe in die Höhe. Die wichtigste Erkenntnis, die wir immer wieder machen: zumindest bei den Privaten scheinen die Zuschauer sprichwörtlich mit dem Laptop auf den Knien vorm Fernseher zu sitzen. Die Zugriffe kommen extrem schnell und gebündelt (beim Galileo-Beitrag war aber interessant, dass die Zugriffe wieder auf einen Schlag kamen, aber erst in dem Moment, in dem der Beitrag vorbei war).

Genau dieses plötzliche Auftreten so vieler Zugriffe ist natürlich die Herausforderung - dieselbe Anzahl User auf nur 15 Minuten verteilt wären kein Problem, aber TV sorgt dafür, dass das meiste innerhalb der ersten 5 Minuten passiert. Und es ist wirtschaftlich natürlich ziemlich unvernünftig, die für diese 5 Minuten benötigte Rechenpower anzuschaffen, nur damit sie die anderen 525.595 Minuten im Jahr vor sich hindümpelt.

Trotzdem kann man eine Webseite auch auf solche Extremsituationen vorbereiten - My-Hammer hat am Donnerstag perfekt standgehalten, lediglich eine leichte Verzögerung in den Ladezeiten war während der kritischen Phase spürbar.

Um kurz die Dimensionen klarzumachen, erstmal eine Grafik, welche den ein- und ausgehenden IP Traffic für unser Netzwerk anzeigt. Man sieht sehr deutlich den Sprung auf das gut 2,5-fache des normalen Werts. Der Faktor selbst klingt vielleicht erstmal nicht so dramatisch, aber wie erwähnt geht es nicht um die Masse an sich, sondern das extrem gebündelte Auftreten dieser Masse an Zugriffen:

IP-Traffic My-Hammer

Ich behaupte mal, man erkennt recht gut, wann die Sendung lief…

Also, wie kann man die Serversysteme auf so etwas vorbereiten? Klar: mehr Server kaufen. Das ist durchaus ein Aspekt, aber nicht das Allheilmittel. Vor allen Dingen kann das sehr ineffektiv und unwirtschaftlich sein. Angenommen, man hat Server A mit einer gewissen Leistungsfähigkeit. Nun kann man sich Server B mit doppelt so schnellem Prozessor, doppeltem Arbeitsspeicher und doppelt so schnellen Festplatten kaufen. Dann hat man schon Unmengen von Geld ausgegeben, und hat gerade mal eine Steigerung der Leistungsfähigkeit von 100% (mal davon abgesehen, dass die Rechnung “doppelt so schnelle Hardware, doppelt so viel Leistung” in der Praxis auch nicht wirklich hinhaut). Dagegen kann ein einziger geschickt gesetzter Index in der Datenbank manchmal 1000% bessere Performance bringen, ohne dass man etwas an der Hardware tut.

Wenn man den Anschaffungspreis neuer Hardware mal auf den Stundenlohn eines Entwicklers umrechnet, wird man schnell zu dem Schluss kommen, dass es sich auch finanziell durchaus rechnen kann, diesen einige Tage lang auf die Datenbank anzusetzen um zu schauen, ob nicht doch irgendwo ein wichtiger Index vergessen wurde oder einige Tabellenstrukturen besser ganz anders aufgebaut sein sollten.

Das sind nur ein paar grundsätzliche Überlegungen. Spürbaren Erfolg wird man nur haben, wenn man ein ganzes Bündel an Massnahmen ergreift und vor allem immer das Gesamtsystem vom Code über die Datenbank bis hin zu den Servern und dem Netzwerk im Überblick hat. Die vielleicht wichtigste Faustregel, wenn man über Performanceoptimierung von Webseiten spricht, scheint mir daher zu sein: Coder und Admins an einen Tisch! Es hilft nichts, wenn die Entwickler meinen, die Geschwindigkeit des Systems sei doch schliesslich Sache des Admins. Umgekehrt ist es extrem hilfreich, wenn die Programmierer auch einen gewissen Sysadmin-Background haben, und die Admins umgekehrt auch Programmiererfahrung haben; was bei uns glücklicherweise sogar sehr ausgeprägt der Fall ist.

Die weiteren Teile befassen sich mit den konkreten Massnahmen, die man ergreifen kann um sich auf einen TV Beitrag vorzubereiten.

5 Responses to “My-Hammer, das Fernsehen und die Serverlast: Teil 1”

  1. October 13th, 2007 | 1:56 pm

    […] Herausforderung 1: Server und Webseite Hubertus und Sebastian hatten einige Vorkehrungen getroffen (wir hatten darüber ja schon berichtet). Unter anderem läuft die Seite jetzt auf zwei Servern, auf dem einen die Datenbank, der andere beherbergt die Application. Speziell Sebastian hat dann über mehrere Tage hinweg die Strukturen optimiert (in einer Weise, die über meine Kenntnisse weit hinausgeht ). Hubertus hat noch Feintuning betrieben, zum Beispiel war die Startseite nun statisch und hat nicht immer ein anderes Müsli angezeigt (was für jeden Besucher mit einer neuen Datenbankabfrage verbunden gewesen wäre). Ja, und dann ging die Sendung los. Ich saß zu dieser zeit gerade in München und alleine vor einem Fernseher der gerade in der Nähe war. Per Telefon hat mir Philipp dann berichtet, was mit der Webseite passiert, so auch gleich danach auf der Autobahn. Die Erkenntnisse aus Manuels Artikel bestätigen sich: “Beim Privatfernsehen scheinen die Zuschauer sprichwörtlich mit dem Laptop auf den Knien vorm Fernseher zu sitzen.” Innerhalb von ein paar Minuten war die Hölle los; hier eine kleine Auswertung: […]

  2. October 16th, 2007 | 12:23 am

    […] Damit bestätigte sich, was Hubertus Bessau zuvor in einem Artikel in einem Blog über ähnliche Erfahrungen mit Fernsehberichten gelesen hatte: "Bei den Privaten scheinen die Leute sprichwörtlich mit dem Laptop auf den Knien vorm Fernseher zu sitzen." […]

  3. October 30th, 2007 | 2:20 pm

    […] Anderseits haben die Jungs bei mymuesli.de das Problem mit der Last auf den Servern (siehe auch bei myHammer)… […]

  4. March 10th, 2008 | 10:42 am

    mein Deutsch ist nicht gut, is it availible in English

  5. March 10th, 2008 | 9:09 pm

    If I find the time, I will try to translate it.

Leave a reply

Photograph of Manuel Kiessling
My XING profile
My LinkedIn profile