Weil ich derzeit schon mehrfach mit eigenen Websites zu kämpfen hatte, die absolut überlastet waren und der Server entweder zu viele Connections zur DB vermeldete oder aufgrund der Requests zusammenbrach, hier eine kleine Anleitung, wie man Webseiten (auch Blogs, Foren) im Fall des Digg-Effekt oder News-Hype möglichst lange erreichbar hält.
Solch ein Besucheransturm kann durch allerlei Gründe ausgelöst werden. Die häufigsten sind wohl das erklimmen der del.icio.us oder digg-Startseite. Aber auch wenn das Thema deines Blogs zur 500.000 €-Frage bei Günther Jauch wird, Du einen kleinen Skandal aufgetan hast, der durch die Blogosphere zieht, oder ein TV-Bericht Deine Seite direkt oder indirekt erwähnt kommt es auf einem Shared-Hosting-Paket ruckzuck zu ausfällen. Aber auch dedizierte Server halten in der Regel nicht deutlich länger Stand.
Jetzt aber zu den Maßnahmen:
1. Keep it static, stupid!
Oberste Priorität sollte haben dynamische Seiten, die viele Abfragen an die Datenbank verursachen (Blogs und Foren gehören in der Regel dazu) statisch zu clonen. Oft ist es nur genau eine Unterseite oder die Startseite, die den Traffic erhält. Man kann z.B. in den Hauptordner eine statische index.html zur index.php legen und den Webserver temporär zuerst auf die index.html zugreifen lassen. Für WordPresss gibt es übrigens das Plug-In WP-Cache, welches selbst die vielen dynamischen Seiten von WP zwischencachen und deutlich Last von der DB nehmen.
2. CSS und CSS-Verweise auslagern
Wenn es nicht die Datenbank ist, die dich scheitern lässt sind das nächste ernstzunehmende Problem die HTTP-Requests. Prinzipiell entsteht beim Aufruf einer Seite nur eine Anfrage(=Request) an den Server. Jede Datei, die jedoch im html-Dokument Erwähnung findet und versucht wird zu laden erzeugt einen neuen Request. Wenn man den Quellcode durchgeht findet man schnell Verweise auf weitere Dateien. Die erste ist in der Regel die .css-Datei. Diese kann man nun z.B. auf einem anderen Hosting-Paket lagern und per link aus dem head extern aufrufen. Bedenke, dass auch die .css oft noch selbst Images aufruft! Damit sind wir beim nächsten Schritt…
3. Images entfernen oder auslagern – “Irgendwann killt dich das clear.gif”
Templates sehen oft wirklich spitze aus. Wenn es um die Auslieferung deiner Website geht sind sie aber dein Tod. Wenn Du nicht ein echter CSS-Guru bist verwendet dein Template sicher 5-20 externe Grafiken. Diese Images erzeugen jeweils einen Request. Also entferne die Verweise auf die Bildchen oder lager die Bilder auf ein starken Hoster aus.
Nur um das Problem zu verdeutlichen. Wenn Du mit 20 Bilden im Code 1.000 Aufrufe liefern kannst, hättest Du ohne die Bilder vermutlich 21.000 mal deine Seite ausliefern können.
4. Back to the roots
Ein einfacher Weg Dein Design bei WordPress zu reduzieren ist das Umschalten auf das Theme “WordPress Classic 1.5″. Ist es hübsch? – Nicht wirklich. Aber es enthält deutlich weniger Images als übliche Templates.
5. Foren – Der sichere Tod
Das betrifft Dich nur, wenn Du auch ein Forum zum Thema hostest: ALLE gängigen DB-gestützten Foren-Softwares produzieren eine Unmenge von DB-Requests und laden so viele Images, dass es auch zu hunderten von HTTP-Requests kommt. Ich persönlich habe den Eindruck, dass vbulletin deutlich länger durchhält als phpBB und demnach Ressourcen schont. Ich kann trotzdem jedem, der einen Hype erwartet nur empfehlen sein Forum kurzzeitig zu deaktivieren oder ebenfalls extern zu hosten. Du solltest Deine User auch nicht mehr wie sonst aktiv zur Forum-Diskussion auffordern. Jeder Aufruf deines Forums kostet Dich 20-200 Auslieferungen einer statischen HTML-Seite. Wenn ich die Wahl habe kurzzeitig eine statische Infoseite anzuzeigen, oder eine Fehlermeldung, ist klar, was ist tun würde. Die User werden in der Regel durchhalten oder wiederkommen, wenn sie wirklich was zu sagen hatten.
Mehr zum Thema:
Robert Basic – Wie Website retten
How to prepare your site for the digg-effect
Schlagworte: Cache, digg, Hosting, hype, phpBB, vbulletin, Wordpress
Na dieses Plug-In WP-Cache schnapp ich mir doch gleich, Danke!
lohnt sich aber wirklich nur bei SIGNIFIKANTEN traffic. aber wenn du deiner datenbank urlaub geben willst kannste es natürlich auch so einsetzen
Was zählt zu signifikant?, habe durch youporn 3k am Tag ^^, aber bisher läuft es ja noch und ich brauche eine Idee wie ich landingsites trotz wp-cache betreiben kann, wenn mir das jemand mitteilen kann nutz ich das gerne ^^ *gf
*den blog jetzt erstmal in meinen feedreader aufnehm
[...] Das eigentlich wichtige: Durch das Hype-Tutorial gab es fast keine Ausfälle. Selbst bei einem billigen Hosting-Paket. [...]
[...] 3. Der Blog sollte auf einem guten Server gehostet sein. Andernfalls ist der Traffic-Spaß schnell zu Ende und es heißt: Error establishing a database connection – der Blog ist down also nicht mehr aufrufbar. 5 Tipps, wie Deine Website einen Digg oder News-Hype überlebt? [...]
[...] Bisher habe ich es z.B. immer geschafft, dank meiner Hype-Tipps, auch vielbesuchte Blogs und Websites lediglich auf SharedHosting-Paketen zu betreiben. In der Regel mach bei WordPress immer zuerst die Datenbank schlapp und die kann man mit WP-Cache ganz gut schlafen schicken. Wenn man dann nicht übermäßig Bilder nutzt schafft auch ein SharedServer eine ganze Menge Zugriffe auszuliefern. [...]
Mich würde es freuen wenn ich überhaupt mal so einen Effekt bekommen würde
Nur hoffenlich hält meine Website dies dann auch stand
Hallo,
also ich möchte mich an dieser Stelle einmal für die ganzen Infos bedanken. Der Blog hier ist einfach unglaublich gut gelungen. Nur weiter so!
Lieben Gruß an alle
Stefan