Sonstiges

WP Super Cache

gestern war ein komischer Tag. Da bloggt man was über den anstehenden Verkauf und die Zugriffszahlen steigen im Grunde genommen nicht besonders hoch, doch der Server raucht bei der Mehrlast ab (na ja, er schmierte nicht ab, aber die Antwortzeiten gingen in den tiefsten Keller). Die Page Impressions beliefen sich auf 21.600. Das ist grob das Doppelte vom Normalmaß und es wurmt mich, dass das Blog ab diesen Größenordnungen abraucht. Berücksichtigen muss man natürlich, wie sich der Traffic verteilt bzw. wie groß die konkurrierenden Zugriffe zur gleichen Zeit in der Lastspitze sind. Kämen alle auf einmal, würde kein normaler Webserver nachkommen.

Wie dem auch sei, ich habe mir jetzt -was ich schon längst probieren wollte- das WordPress-Plugin „WP Super Cache“ installiert. Das nach dem Prinzip arbeitet, aus einer dynamischen Auslieferung von Inhalten (die aus der MySQL-Datenbank bedient werden) statische Dateien zu erzeugen. Die ein Webserver unter Umgehung von Datenbankabfragen und der Entlastung der PHP-Abarbeitung eher ausliefern kann, da man schlichtweg zwei große Arbeitspakete damit streicht:
This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts.

Da bei der Aktivierung des Plugins einige Grundfunktionen und Schreibrechte erwartet werden, ist die Installation nicht ganz ohne. Also nix mit plug & play. Was damit den Einsatz für abolute Anfänger erschwert. Im Grunde genommen ist das aber wirklich nicht so wild, wenn man die Fehlermeldungen durchliest und Schritt für Schritt das tut, was drinsteht.

Nach Aktivierung des Plugins lief das Blog wieder rund. Wann man es demnach einsetzen sollte? Schwer zu sagen, wo die Schmerzgrenze Eures Webservers liegt, das findet man dann heraus, wenn es soweit ist. Ich würde supergrob sagen, dass man sich ab 10.000 Seitenaufrufen pro Tag langsam Gedanken machen sollte, das Tool zu installieren. Wobei Seitenaufrufe nicht viel besagen müssen, wenn ein Blog pro Abfrage mit extrem vielen Datenabfragen aufwartet (zB über den Einsatz datengieriger Plugins) und zugleich übermäßig viele Files ausliefern muss. Das können zB Bilddateien sein. Die der Server natürlich ebenso mit ausliefern muss. Sprich, jede auszuliefernde Datei (.html, .jpeg, .gif, .png…), jede zu interpretierende Datei (.php, .js, …) und jede Datenbankafrage kostet Power. Rechnerlast, die auf Kosten von Plattenzugriffen, CPU-Zeiten und RAM geht, aber auch Bandbreite der Netzkarte. Daher würde ich die 10.000 Page Impressions mit Vorsicht genießen. Es gibt draußen genügend Shared Hoster, die nur bis zu einem bestimmten, recht niedrigen Grenzwert dem Bloginhaber Ressourcen des Webservers zuordnen, den man sich mit anderen Kunden teilen muss. Diese Angaben findet man kaum in den AGBs bei Vetragsabschluss, zumal sie die meisten Kunden nicht bewerten könnten, meiner einer inlusive. Oder wisst Ihr etwa, wie viele Datenbankabfragen Euer WordPress erzeugt?

Über den Autor

Robert Basic

Robert Basic ist Namensgeber und Gründer von BASIC thinking und hat die Seite 2009 abgegeben. Von 2004 bis 2009 hat er über 12.000 Artikel hier veröffentlicht.

75 Kommentare

  • Ich könnte dir Hosting anbieten, das erst abraucht, wenn du ein paar Nullen dranhängst.. 22 kPi am Tag finde ich nicht sonderlich furchteinflößend. Der limitierende Faktor ist vermutlich eher die Datenbank. WP ist ja bekannt dafür, nicht eben superdoll optimiert zu sein und diverse Plugins tun ihr übriges. Bei Wald-und-Wiesen-shred-Hosting ist es praktisch nciht möglich die DB ordentlich zu konfigurieren. Zugfriffe auf die diversen laufenden Webs / DBs führen dazu, dass dauernd der Index Cache geräumt, neu von Platte gefüllt und wieder geräumt wird. Und Cache Misses sind eben ganz böse Zeitgenossen 😉

    Da du ja nicht soo schlecht verdienst und in 7 Tagen eine größere Zahlung erwartest, kannst du dich gerne mal melden 😉

  • Die Zahl der Abfragen ist nicht unbedingt vielsagend. Viel wichtiger ist, wie die Abfragen optimiert sind. Eine langsame Abfrage kann das gesamte System lahmlegen. Viele schnelle schaden allerdings kaum.

    Caching ist eigentlich immer sinnvoll, sobald die Zahl der Cache-Abruf um einen gewissen Faktor (will mich da nicht festlegen) größer ist, als die Zahl der Cache-Updates. Außerdem kommt es natürlich auf die Serverausstattung und -konfiguration an.

    @Alexander
    Es sind aber immer häufiger Plugins, die Performance-Probleme auslösen. Wenn man die Entwicklung von WordPress verfolgt, sieht man, dass inzwischen für fast alle Konstellationen eine bestimmte Optimierung implementiert ist.

  • hrhrhrhr,…. ich habe meinen Server aber liebgewonnen. Ne, da die neuen Blogs kaum mucken werden, wirds erstmal keinen Bedarf für Powermaschinen geben. Aber danke für das passende Angebot, ist notiert.

  • @paddya:

    Tendenziell hast du natürlich Recht, aber ich wollte jetzt so ganz ohne Monitoring von Roberts liebgewonnenem Server auch keine Dissertation über „Die Performance und Optimierungsmöglichkeiten von dedizierten Linux basierten Root-Servern bei Verwendung von stark frequentierten und mit vielen Plugins versehen WordPress Weblogs“ schreiben 😀

  • Generell sollte man eigentlich fast immer darüber nachdenken caching bei wordpress zu installieren.

    Die Blogsoftware API für Themes und Plugins ist einfach viel zu datenhungrig und selbst bei simplen themes schafft man schonmal 20+ mysql requests für einen webrequest.

    Muss jetzt nicht wp-supercache sein, man kann ja auch mem-cache lösungen benutzen die jetzt nur auf den sql-string die results cachen.

  • @Alexander
    Das ist klar und du hast natürlich auch Recht. Ich wollte nur das „WP ist ja bekannt dafür, nicht eben superdoll optimiert zu sein“ nicht so allein im Raum stehen lassen. Sieh es als Ergänzung zu deinem Beitrag. Wegdiskutieren kann man die Performance-Probleme von WP bei größeren Projekten nicht. Allerdings entstehen diese eben durch das Zusammenspiel aller Komponenten 😉

  • In der internen Struktur von WP macht sich dessen Alter leider bemerkbar. Drum gibts bislang im Grundumfang keine Caching Option, wie sie woanders nicht unüblich ist. Was einfaches DB-basiertes reicht ja völlig. Mit einem ganz simplen Select auf ne Cache Tabelle hat man schwupps alle Daten und kann sie rausschieben.. Ah Mist.. habe den Konjunktiv vergessen…

    Ist vllt. ein wenig der Microsoft-Effekt. Durch die riesige Installationsbasis ist man immer irgendwie gezwungen möglichst kompatibel zum alten Kram zu bleiben. Man kann an der Admin-Oberfläche mit Ajax und Schnick und Schnack basteln, aber unter der Haube tuckert noch dieselbe uralte Maschine.

  • @Alexander
    Ja, das merkt man deutlich… der alte Code ist echt hässlich.
    Deshalb hoffe ich, dass man sich bei Automattic dafür entscheidet, die Version 3.0 von Grund auf neu aufzubauen (PHP4-Support gleich mal fallen lassen) und nicht als Nachfolger der Version 2.9 herauszubringen.

  • Das WordPress nie für riesige Besucherzahlen gemacht wurde, sieht man recht schnell. So gibt es bei mir teilweise (leider recht häufig) locker über 500 Datenbankzugriffe PRO! Sekunde und da macht der Server dann die Schotten dicht.
    Es gibt noch ein paar Tricks zum Optimieren (z.B. SQL Verbindung offen lassen, Caching, etc.), aber das funktioniert leider alles nur unzureichend.

    Mir bleibt nichts anderes als weg von Hetzner und anderen Massenhostern zu einer individuellen Lösung 🙁

  • bei deinem Blog habe ich mich eh gefragt, wie das mit einem Server gehen sollte… heftiges Kommentaraufkommen ist netter DB-Killer für kleinen DB-Server. Ich kann ja spenden:))

  • Aufgrund des liebgewonnenen Servers ist der Kommentar wahrscheinlich überflüssig, aber wie steht es eigentlich mit dem VIP Hosting von WordPress.com?

    Wäre das nicht eine Alternative? Als A-Blogger würdest du bestimmt die Bedingungen dafür erfüllen, oder nicht?

    Keine Ahnung, ob das zu teuer ist, dich sonst irgendwie technisch einschränkt oder am Ende komplett an deinen Anforderungen vorbei geht. Wollte es nur einmal in der Raum geworfen haben. Sozusagen der Vollständigkeit halber. 😉

    Gruß, Martin(IQ)

  • Wieviele Datenbankabfragen mein Blog erzeugt weiß ich nicht, ich weiß aber, dass ca. 20 Plugins laufen und ein Blogaufruf auf dem Server ca. 65 Dateien in Bewegung setzt (jpg, gif, php, usw.). Und mein Rekordhoch von fast 50.000 PI’s an einem Tag, hat mein Webhostingpaket bei 1&1 ohne große Probleme gemeistert. Fast 30 GB Traffic an einem Tag. Man hat mir dann den Umstieg auf ein größeres Paket ans Herz gelegt aber in der Qualität reduzierte und damit in der Dateigröße verkleinerte Grafiken haben das ganz große Chaos erstmal verhindert. 🙂

  • Danke, Robert. Infos zur Performance von anderen Systemen finde ich immer sehr spannend. Als Entwickler eines „Marktbegleiters*“ von WordPress tendiere ich schon lange dazu, alles soweit möglich über statische Seiten zu regeln. Aufgefrischt wird nur, wenn auch wirklich nötig. Dann kann der Webserver zeigen was er kann und mich geht es nix mehr an.

    *Neee, nicht wirklich. Ist eher ein CMS mit Bloggingfunktion…

  • MIr ist klar, dass man DB Abfragen nicht allein auf Basis ihrer Anzahl vergleichen kann, aber wenn ich hier höre, dass Server bei 500 pro Sekunde die Grätsche machen….

    Ich habe hier zumindest einen Kunden auf einem Root-Server (Dual-Core, 2 GB RAM) laufen, der problemlos 2500 Abfragen die Sekunde macht, während gleichzeitig der Apache samt PHP ordentlich schuftet. Im MySQL Performance Blog las ich kürzlich auch von einem betagten Dual-Core (allerdings dediziert als MySQL Server), der eine fünfstellige Zahl Abfragen die Sekunde macht.

    Grundsätzlich gehe ich wohlwollend davon aus, dass all die Abfragen auf ausreichend normalisierte Tabellen mit halbwegs sinnvollen Datentypen geschehen.

    Rechenpower und I/O Performance ist auf den aktuellen Rooties reichlich vorhanden, dass auch hungrige Blogs bedient werden können, sofern man gemäß der vorhandenen Hardware Ressourcen die Konfigs der Services (vor allem Webserver und Datenbank) aufeinander und auf den Use Case abstimmt.

  • Schlecht programmierte Plugins machen eine Menge Probleme. So wie paddya schon schrieb, eine langsame Anfrage kann viel ausbremsen. Meistens merkt man dies aber erst, wenn es den digg- oder heise-Effekt gibt ;-). Step-by-Step Zuschaltung und Testen, wieviel Performance verloren geht, bringt da eine Menge aus meiner Sicht. Das Plugin WP-Supercache ist wirklich empfehlenswert bei vielen Anfragen, allerdings hatte es bei uns auch zu Zählschwierigkeiten mit anderen Statistik-Plugins geführt.

  • Könnte noch immer an Ajax Edit Comments liegen, da du im Thread mit den >200 Kommentaren ja wahnsinnige:

    271 queries. 1.722 seconds.

    produzierst… bei mir sinds noch mehr, da ich den Fix dazu noch nicht installiert habe…

  • ich habe WP Super Cache und zuvor WP Cache seit ewigkeiten im einsatz.

    vorteil ist natürlich die belastbarkeit (und generell schnellere auslieferung)

    nachteil ist dass viele dynamischen komponenten natürlich nicht voll funktionsfähig sind und tools wie semmelstatz nicht funktionieren.

    auf jeden fall sollte man für „notzeiten“ das plugin immer schon fertig installiert und getestet im arsenal haben.

  • Die Zahl der PHP-Abfragen in der PI kann man sich als eingeloggter User anzeigen, wenn man folgenden Code in die footer.php schmeisst:

    #?php if (is_user_logged_in()) { ?*
    #?php echo get_num_queries(); ?* queries in #?php timer_stop(1); ?* seconds.
    #?php } ?*
    # = kleiner-Zeichen
    * = größer-Zeichen

    Nur die innere PHP-Anweisung für sich genommen zeigt die Info für alle Seitenbesucher an. Bei mir sinds 22-23 Abfragen, meist in 0,5-1 Sekunde erledigt. Hab aber nicht wirklich Last auf meinem VServer.

  • In der Tat ein schönes Beispiel von Hal Faber, dies zu verlinken. Wobei es gleichzeitig die Page-Imprssions leicht erhöht haben könnte und damit auch gleich ein guter Test ist. Scheint aber nicht geheist zu sein.

    😉

  • Bei 0.25 PI/s blockiert die Software? buwahahahaha, wer hat diesen Müll (WordPress) programmiert? ^^

  • „Oder Fefe mit seinen popeligen PIs?“

    Hm. Scheinen mehr als 3mal soviel, wie Deine zu sein. Oder wie sind Deine Einheiten? 21kPI/Tag?

  • 25k PI am Tag sind echt nix, wo WordPress zwingend an die Wand fährt. lawblog.de rockt das an einem normalen Werktag.

  • „äpfelbirnenmischemuschalmaschel, Google hat exponentiell mehr, so what?“

    Klasse Antwort. Warum dann „popelige PIs“? Ich hatte da schon den Eindruck, das wäre Dir wichtig.
    Oder generiert sich der Wert Deines Blogs mehr aus der Qualität? Komisch – da hatte ich bisher nicht den Eindruck.

    War mal wieder so’ne richtige Robert-Basic-Antwort, ne.

  • „gegenüber Monsterseiten haben wir alle popel-PIs, wer unbedingt darauf abheben will, muss sich auch einnorden lassen, was PI-Längenvergleiche angeht“

    Warum fängst Dur eigentlich dann erst damit an, mit dem PI-Längenvergleich? Ich muss sagen, ich teile da Fefes Hohn: Immerhin hat er mehr PIs als Dein „Super-Blog“. Das macht mir mal richtig Freude. Und er hat keine technischen Probleme. Vermutlich, weil er die Technik versteht, anstatt sie nur zu hypen.

    Darüberhinaus generiert er ausserdem keine PIs mit Kommentaren, Wenn man also den Wert an der Grösse des Leserkreises messen wollte ….

    Und zuletzt: Google ist kein Blog. Du willst wirklich Äpfel mit Birnen vergleichen, oder? “äpfelbirnenmischemuschalmaschel“. Naja.

    In dem Sinne: Schönen Abend noch.

  • und Fefe ist nicht ich, noch ich er, so… ÄpfelBirnen, who cares? Wenn er als IT Experte meint, sich brüsten zu müssen, 70k irgendwas auf dem Server managen zu können, *schulterzuck*

  • Ach … viel interessanter ist doch, das man mit seinem kleinen Nischenblog zumindestens PI-wise garnicht soooooo weit weg ist von den Blogs, die in den althergebrachten Medien vorgezeigt werden 😉 Also nicht faktor 100 oder 1000 sondern vielleicht nur faktor 10.

  • ad #36 :
    Moment, Robert… du hast gemeint, deine 21.6 kPI an einem Tag seien das Doppelte von normal und das habe deinen Server abgeschossen (+/-..).
    Fefe findet das lustig und zeigt kurz, dass er erheblich mehr PIs bekommt (auch wenn es bei ihm natürlich minimalistisch(er) ist als bei dir).

    So und nu fängst du an, rumzupöbeln und kommst mit google? Und während es vorher noch eine große Zahl PIs war, ist jetzt was völlig anderes in den Vordergrund getreten (die Sache mit den plugins), man könnte ja fast den Eindruck bekommen, du fühlst dich als Verlierer und willst aber nicht verlieren.. 😉
    Irgendwie komisch.

  • @38, ja, genau, darum gings, dass ab 10.000 PIs eine WP-Installation ohne weitere Maßnahmen langsam muckt. Dazu gibts eben ein Plugin, was hilft. Der Rest ist Gaming with Words, wenn einer meint „ätschi mein Server bla…“ 🙂

  • würde dich mal gerne im Verkaufsgespräch sehen.. „was hat das Auto drauf“… „das verrate ich ihnen nicht, das wäre wie Angeberei“… :;)) Vader, ich habe Dich sp langsam in mein Herz geschlossen. Ich mag schräge Typen, bin ja selbst irgendwie einer:))

  • „ich habe Dich sp langsam in mein Herz geschlossen“

    Ne, Danke, das wird ja langsam richtig eklig.

    Aber jetzt gibst Du zu, dass Du doch mit Leistungsdaten angefangen hast, gell? Aber immer schön irritiert werden, wenn’s jemand bemerkt und Dich etwas in Perspektive setzt? Fefe ist schon arrogant — aber irgendwie unterhaltsamer als Dein Rum-Schwadronieren. Ausserdem hab ich bei Diskussionen mit Dir immer so das Gefühl, dass Du Dich nie dem Thema stellst. Egal. Oder „Whatever“. Who cares. Now that the Blog is being sold. Or something. Or whatever. Anyway.

    Wir verstehen uns, oder?

    „Gaming with Words“. LOL.

  • @ #47, Michael: Nein. Ich mag nicht. Schließlich hab ich hier auch noch nie Fragen beantwortet bekommen 😉 da Robert sich wie ein Stück Seife in der Badewann benimmt. Aber ich will mal nicht so sein, deshalb ein Hinweis: Das Wort „popelig“. Denk mal in die Richtung. #40 bringt das eigentlich sehr gut auf den Punkt.

    Wisst ihr was? Ich vermute mal, die Versteigerung ist mal wieder nur eine PR-Aktion: Das Blog wird nicht verkauft, da das von RB festgelegte Mindestgebot von 1/2 Mio nicht erreicht werden wird. Ach so ein Pech. Aber ein ganz unbeabsichtigeter Nebeneffekt: Demnächst wird man dann Roberts Blog ganz oben findet, wenn man nach Blogverkauf oder Wert von Blogs googelt.

  • Also… Ich habe in den letzten Tagen einen Teil deiner Einträge und einen Teil der Kommentare gelesen, Robert. Ich muss sagen: du bist mir höchst unsympathisch – fefe ist zwar ab und an etwas überheblich, du scheinst mir aber einfach nur ein proll zu sein (und dazu noch ein höchst unprofessioneller proll, wenn ich mal den verkauf ansehe z.B.)

  • Mein Blog ist auf einem vServer nach 1000 PI in einer Stunde zunächst im Nirvana verschwunden… und wisst ihr was? Es stört mich gar nicht, dass Robert das Problem in einer ganz anderen Größenordnung hat. Genausowenig würde es mich jucken, wenn Robert das Problem bei weniger PI als ich hätte.

    Wieso? Weil weder die Serverstabilität noch die PI etwas über KnowHow, Wert oder sonstwas aussagen. Vielleicht hat Robert ja auch nur über die Jahre schlauer gewirtschaftet als Fefe, weil er eben nur das für den Server ausgibt, was im Normalbetrieb notwendig ist?

    Oder wenn die PR-Verschwörungstheorien stimmen (ich glaub nicht dran, weil ich Robert für authentisch halte, was „seinen“ Wert gegenüber anderen auch enorm steigert) : Dann hat Robert euch wohl auch einiges voraus, oder habt ihr schon eine PR-Aktion gestartet, die Gratis von Tagesschau bis BILD veröffentlicht wurde? Nicht? Anfänger!

    Ich lese die ganzen Pöbeleien der letzten Tage recht amüsiert mit… statt nun Neid zu entwickeln freue ich mich über Roberts Erfolg. Aber punktuell wird es echt lachhaft, insbesondere wenn es vereinfacht heißt „Robert ist zwar in ganz Deutschland Thema, aber ich habe mehr PI“. Klingt irgendwie nach Minderwertigkeitskomplex… zum Glück habe ich den nicht, sonst würde ich bei meinem Blog aus dem Fenster springen 😉

  • @ #54 (Michael): The operative word here is „Hinweis“. Recommended strategy: Think Yourself (TY(tm)).

  • Tja, das habt ihr nun davon: google suchen nach „größtes Blog“ und „meistgelesenes Blog“ sowie „meistverlinktes Blog“ führen alle recht direkt zu fefes blog.
    Okay, manche leute sehen Blog ja als männlich bzw. weiblich, dementsprechend anders geschrieben aber die o.g. Suchbegriffe sind doch recht interessant…

  • # #58 Gast schrieb am 13.01.2009, 17:02: Tja, das habt ihr nun davon: google suchen nach “größtes Blog” und “meistgelesenes Blog” sowie “meistverlinktes Blog” führen alle recht direkt zu fefes blog.
    Okay, manche leute sehen Blog ja als männlich bzw. weiblich, dementsprechend anders geschrieben aber die o.g. Suchbegriffe sind doch recht interessant…

    Tja liebe Leser, fefes blog ist ein richtiges Blog so wie es die Gründerväter sich vorgestellt haben und es sieht auch so aus.

    http://blog.fefe.de/

    Besonders lesenswert: http://blog.fefe.de/?ts=b7972809

    Wie der auf diese Werte kommt – weiss er vermutlich nur selber.

  • Hab momentan so um die 1200 visits pro Tag.
    Manchmal macht der Server schlapp. Hab meinen Host drauf angesprochen und der meint ich solle einen dedizierten Server haben (teuer), da ich über 20 gleichzeitige Datenbankzugriffe erzeuge. Das ist anscheinend die Grenze.

    Was sagst Du dazu? Macht WP supercache da Sinn? … oder soll ich den Host wechseln?
    Kann ich irgendwie messen wieviele gleichzeitige Datenbankzugriffe meine aktuelle Seite erzeugt pro Aufruf oder werden die sowieso bei einem Zugriff nacheinander abgerufen und ich bräuchte dann praktisch 20 gleichzeitige User?

  • Lastspitzen als Problem des Kunden…

    Robert Basic möchte sein Blog BasicThinking.de verkaufen. Soweit so gut. Dabei wünsche ich ihm natürlich viel Erfolg. Aber die Frage, was dass hier auf serverwolken.de zu suchen hat ist natürlich berechtigt. Es geht mir hier nicht um den Verkauf an…

  • @chris: hast Du mittlerweile eine Lösung für dein Problem gefunden? Ähnliche Probleme habe ich auch bei durchschnittlich 3000 Visits pro Tag.

    lass doch mal hören wie du vorgegangen bist

    grüße
    jeschua

  • An sich ne „Super-Sacher“ dieser WP-Super-Cache, wenn da nicht die Problematik mit dem cachen auch von Seiten wäre, die nach einer individuellen Anfrage wären. Hier lässt sich WP-Super-Cache nicht steuern, so dass fälschlicherweise eine bereits gecachte Ergebnisseite vor der eigentlichen Abfrage ausgegeben wird.

  • Bisher kenne ich definitiv noch nicht die Anzahl an Datenbankabfragen meiner WP-Interagration. Ich denke aber auch, dass diese Problematik die wenigsten betrifft, denn 10000 Page Impressions erreichen doch nur wenige Blogs pro Tag oder? Ich bin zumindest noch nicht in diese Situation gekommen.

  • sowas habe ich ja noch nie gehört 😉 vielleicht kaufst du dir mal einen neuen surfer!?

    Und danke für das Plugin – klappt auch bei mir hervorragend!

    Beste Grüße, Olaf

  • Es gibt mittlerweile einige veröffentlichte Tests bzgl. dem Plugin WP Super Cache. Dieses Plugin wird auch von ganz großen Blogs genutzt.

    Hier scheint es aber bei der Schnelligkeit auf die jeweiligen Einstellungen anzukommen.

  • Do you want to get resume writing services, which suit the range of study you desire?. You can trust our resume writers, as you count on yourself. Thanks because that is the useful information