30 Dezember
Wordpress und der Speicherhunger
Das Wordpress 2.9.1. in den Startlöchern steht, wundert wirklich niemanden mehr, die Abstände zwischen den Aktualisierungen werden immer kürzer. Das liegt zum einen daran, das Wordpress wegen seine hohen Verbreitungsgrades immer ein beliebtes Ziel von Angriffen ist und zum anderen daran, das immer mehr Features in den Kern implementiert werden. Das hat zum Nachteil, das der Speicherverbrauch, mit dem Wordpress die Hardware des Servers belastet, immer größer wird. Doch das ist nur die Spitze des Eisberges.
Nachdem ich erfuhr, das ich für WP 2.9 eine MySQL Datenbank der Version 4.1.2 benötige, ich aber nur eine 4.0.25 vorzuweisen hatte, schrieb ich meinen Hoster all-inkl.com an. Der antwortete mir sehr schnell, das dies alles kein Problem wäre und ich in der Nacht vom 28.12. auf den 29.12. auf einen neuen Server umziehen würde, der eben diese Features bietet. Und so war ich angenehm überrascht, das ich am Morgen danach MySQL 5 und PHP 5 als Voreinstellung begrüßen durfte. Mein Problem mit den Sonderzeichen und der Datenbankumstellung, auf die ich vorbereitet war, habe ich ja im gestrigen Artikel bereits erzählt.
Doch was war das? Beim darstellen der Startseite: Fatal error: Allowed memory size of XXX bytes exhausted (tried to aloocate X bytes). Ein Blick auf die Speicherauslastung, die mir das Plugin WP System Health anzeigt, offenbarte das Problem. Allein die Darstellung des Backends sorgte für eine Speicherauslastung von 71%, also etwa 46 MB bei einem Serverseitig konfigurierten Speicherlimit von 64 MB. Ein Artikel bei Wordpress Deutschland über dieses Problem brachte keine Linderung, denn hier geht man von einer sehr niedrigen Memory Limit (32 MB) aus, meine 64 MB sollten da eigentlich kein Problem darstellen.
Wie sich herausstellte, war ich beim Umzug von einem 32bit auf einen 64bit Server umgezogen. 64bit Systeme haben den unangenehmen Nebeneffekt, das der Speicherverbrauch sich in etwa verdoppelt, das hier die Verwaltung des Speichers mehr Platz benötigt. Die WP Installation quittierte das mit einer Mehrbelastung von rund 30%. Im Backend reichte der Speicher aus, wenngleich er mit 46MB/64MB schon recht hoch ausfiel. Beim darstellen der Startseite greifen jedoch nun alle Plugins, jQuery Erweiterungen und die Anzahl der Datenbankabfragen steigt. Folge: Der Server bricht das Darstellen ab und zeigt oben genannte Fehlermeldung.
Somit musste ich also den Speicherverbrauch reduzieren. Doch wie macht man das? Die Lösung ist einfach und problematisch gleichzeitig, denn hauptsächlich durch das Deaktivieren einiger Plugins lässt sich der Speicherverbrauch drücken, doch nicht jedes Plugin verbraucht gleich viel Speicher. Je Komplexer und aufwendiger das Plugin, umso höher der Speicherverbrauch. Der Broken Link Checker (2MB), Simple Tags (3MB), Redirection (2MB), Twitter Tools (1MB) und die FeedStats (0,5MB) waren bei mir die Plugins die erstmal deaktiviert wurden, doch immer noch nicht genung.
Hinweis: Es lohnt sich immer wieder einmal ein Blick in die Datenbank zu werfen um auch hier Speicherfresser ausfindig zu machen. Aufgeblähte Log-Tabellen oder tote Einträge bereits deinstallierter Plugins sorgen für zusätzliche Entlastung. Wer möchte kann das Plugin WP-Optimize nutzen, das die Datenbank ein wenig aufräumt. Wie ich bei Frank Bueltge gelesen habe, bringt WP diese Funktion seit der Version 2.9 bereits mit, man muss sie nur aufwendig aktivieren:
Dazu öffnet man die Datei wp-config.php im Root-Verzeichnis des Blogs und fügt den Eintrag define(‘WP_ALLOW_REPAIR’, true); hinzu und ruft das Script dann in der Adresszeile des Browsers auf: http://www.meinblog.de/wp-admin/maint/repair.php
Das brachte immerhin einen weiteren MB, doch immer noch nicht genug. Ein Artikel des Code-Styling Projekts um den Speicherverbrauch der Sprachdatei zu mindern brachte nochmal 3 MB. Dabei wird die deutsche Sprachdatei offenbar unsauber verarbeitet und sorgt für einen zusätzlichen Speicherverbrauch. Endlich funktionierte wieder alles! An die neuen Funktionen zu Bildverarbeitung, die WP 2.9 mitbringt, war natürlich nicht zu denken. Das konnte es doch nicht sein, das ich meinen liebevoll zusammengebauten Blog zu kastrieren muss. So habe ich mich mit meinem Hoster auseinandergesetzt, der mir nach einigem Mailverkehr dann das memory_limit auf 100 MB erhöhte. So kann ich nun wieder alles so benutzen, wie ich es gewohnt bin und erfreue mich zusätzlich an den neuen Möglichkeiten der Bildbearbeitung im Backend.
Doch ein fader Beigeschmack bleibt, Hoster mit einem Memory Limit von 32 oder 64 MB sind die Regel und eigentlich kann niemandem so wirklich vorgeworfen werden für das Problem verantwortlich zu sein. (Tipp: Hosteurope bietet in seinen günstigen Webpack 2.0 Paketen ein Memory Limit von 128 MB) Der mittlerweile sehr überladene Kern des WP Blogs ist sicherlich ein Grund, ebenso wie unzählige und teilweise unsauber programmierte Plugins. Ich denke hier sollte das WP-Team für die Zukunft differenzieren und nicht aus einem Blog ein CMS basteln (Typo3 bekommt man auf 32 MB erst gar nicht zum funktionieren) und sich auch ein wenig darauf konzentrieren die Software schlank und schnell zu halten. Die Hoster sollte anstatt immer neuer Angebote zu günstigen Preise auch etwas an der Qualität ihrer Angebote tun, denn 32 MB sind wirklich nicht mehr zeitgemäß und machen eine Web 2.0 Anwendung mit viel AJAX und jQuery zum Spießrutenlauf. Spart euch den nächsten Preisnachlass und halbiert die Zahl der Kunden je Server.
(Bildquelle: Mixergirl/flickr.com)
Die Schlagworte WordPress, Speicherhungen, memory_limit, 2.9 wurden für diesen Artikel vergeben. Daraus resultieren folgende Themenverwandte Artikel, die dich auch interessieren könnten:


schrieb am 30. Dezember 2009 at 14:05 | Permalink
Danke für die Infos, vor allem das Plugin “WP System Health” fand ich sehr interessant. Da ich mehrere Blogs auf meinem Server am Laufen habe, jeweils in einer eigen Datenbank, muss ich mal schauen, wie ich eine Gesamtübersicht über den Server erhalte…
schrieb am 30. Dezember 2009 at 18:51 | Permalink
Wie gut dass ich nen Root-Server habe: Speicherlimit wird einfach kurz hochgesetzt wenns irgendwo eng wird und fertig. Klar, eigentlich sollte hier einfach besser programmiert werden (wobei das AJAX-Zeug ja ein neues Script startet und somit nicht am Speicherlimit kratzen sollte).
Im Grunde sind die furchtbar programmierten Plugins natürlich ein Hauptproblem und ich hab schon bei so manch einem Plugin gestaunt als ich mir den Sourcecode angeguckt habe – totaler Mist, von PHP-Frischlingen programmiert… da ist es kein Wunder, dass da nichts mehr geht. ;)
schrieb am 31. Dezember 2009 at 00:58 | Permalink
Mir hat das ursprüngliche Konzept von WordPress sehr gut gefallen: Will man mehr, benötigt man ein Plug-In.
Inzwischen sind viele Funktionen schon in WP integriert, was generell nicht schlecht ist.
Doch ich hoffe das die weitere Entwicklung nicht zu sehr auf Features abzielt. Der Speicherbedarf ist jetzt schon für viele am Limit.
Es gibt schon erste Forderungen nach einem WP-Light!
Bin gespannt wie es sich weiterentwickelt…
schrieb am 1. Januar 2010 at 18:19 | Permalink
Danke Dir für den ausführlichen Bericht … gut zu wissen. Bei mir läuft die neue Version nicht ganz rund aber noch ertragbaren Rahmen. Ich hoffe es wird besser mit den nächsten Updates und Deine Worte werden erhört.
schrieb am 1. Januar 2010 at 22:13 | Permalink
@Rolle: Stimmt, das Plugin sollte man im Hinterkopf behalten, wenn der eigene Blog mal wieder aus unerklärlichen Gründen streikt oder hakelt :)
@Thomas: Stimmt als Root-Server Betreiber hast du natürlich freie Hand was das Speichermanagement angeht. Grundsätzlich finde ich WP ja nicht schlecht, aber ich finde auch das immer mehr Sachen in den Kern geladen werden, die zu Lasten der Performance gehen, von daher finde ich funkygog’s Ansatz “WP-Light” gar nicht so abwegig, gerade vor dem Hintergrund das manche tatsächlich nur 32MB Speicher zur Verfügung haben. Bei Plugin’s finde ich das im Grunde nicht so schlimm, obwohl hier sauberer Code wünschenswert wäre, aber immerhin hat man hier noch Auswahl oder kann sich ganz gegen ein Plugin entscheiden.
@funkygog: Ja, genauso sehe ich das auch. WP 2.9 bringt ja durchaus schicke Bildbearbeitungstools mit, aber sind die wirklich nötig? Kostenlose und gute Bildbearbeitungsprogramm für die Grundfunktionen gibt es wie Sand am Meer: Beispiel IrfanView.
@stoffel: Das hoffe ich auch, aber unterschwellig vermute ich das sich das Problem noch verschärfen wird. Die Hoffnung aber bleibt :)
schrieb am 2. Januar 2010 at 09:53 | Permalink
@ funkygog: Ich hoffe mal, dass uns ein WP-Light erspart bleibt. Insbesondere für die Plugin-Entwickler wird das nur zu Chaos führen, wird doch jetzt schon die API von Version zu Version schlechter dokumentiert. Dazu gibt es ja now Wordpress-MU, womit die Plugins auch noch kompatibel sein sollten, da sonst das Gejammer losgeht. Wenn ich dann um ein Plugin zu schreiben drei WP-Varianten installieren und aktualisieren muss und das Plugin auf jeder Plattform testen, dann würde mir gewaltig die Lust vergehen. Zumal das ein riesiges Verwirrspiel für die Nutzer geben dürfte: Welches Plugin funktioniert denn nun wo? Dann lieber das eigentliche Wordpress wieder leichter machen, ich verstehe sowieso nicht, warum die Erweiterungen wie die Bildbearbeiten-Funktion fest verankert ist und nicht wie dieses dümmliche “Hello Dolly” als Plugin mit drin ist – gern auch standardmäßig aktiviert, nur eben abschaltbar.
@ Robert: Wie oben schon geschrieben – WP-Light halte ich für einen schlechten Ansatz, ich bin eher für die Auslagerung von Features in Plugins. Bevor man aber meckert sollte man immer bedenken, was denn nun wirklich auf den Speicher schlägt. Ein Bildbearbeitungs-Tool das nicht genutzt wird verbraucht beim Aufruf der Seite keinen Speicher. Ebenso irgendwelcher AJAX-Schnickschnack. Wobei man sich wirklich fragen sollte, wie du in deinem Artikel schon geschrieben hast, ob 32 MB Speicher in Zeiten von 64 Bit-Systemen nicht einfach obsolete ist. Bürorechner werden inzwischen schon quasi als Standard mit 4 GB Arbeitsspeicher verkauft, 32 MB hört sich irgendwie nach Windows 95 an.
Was aber speziell die Bildbearbeitungsfunktion angeht muss ich dir widersprechen: Ausschneiden ist mit Irfanview fast schon eine Kunst und besonders bei Netbooks und auch zum Beispiel bei Blackberrys ist eine solche Funktion extrem praktisch, da die Rechenleistung vom Server übernommen wird.
schrieb am 2. Januar 2010 at 11:25 | Permalink
@Thomas: Auf Blackberrys und Netbooks gebe ich Dir recht, natürlich. Mit dem Ausschneiden habe ich bei Irfan keine Schwierigkeiten, vielleicht ist das auch Gewöhnungssache. Aber was nützt die Funktion, wenn ich beim ausführen eine Fehlermeldung erhalte, womit der einfache Blogger nichts anfangen kann? In diesem Sinne finde ich die Idee des “Zuschaltens” ähnlich wie einem Plugin sehr sinnvoll. Vielleicht auch eine Abfrage, wieviel MB Speicher denn nun vorhanden ist um entsprechend vorher zu warnen.
Ganz davon abgesehen gebe ich Dir recht, 32 MB ist wirklich sehr ärmlich, gerade auf einem 64bit System. Aber die meisten Hoster versuchen natürlich, möglichst viele Kunden auf einen Server zu packen, die Verdopplung des Speichers für Kunden halbiert dann auch im schlechtesten Fall die Anzahl der möglichen Kunden.
schrieb am 3. Januar 2010 at 21:36 | Permalink
Nun, da kommen wir auf ein ganz anderes Problem zu sprechen: Ist WordPress dafür gedacht, dass jeder Technik-Noob einen eigenen Blog betreibt, ohne diesen professionell einrichten zu lassen? Immerhin gibt es da ja doch diverse Dinge zu beachten, beispielsweise die Schlüssel die in der wp-config.php eingetragen werden sollten usw.! Ich denke mal, wer die Fehlermeldung nicht versteht, der sollte auf einen der üblichen Blog-Hoster ausweichen oder sich den Blog professionell einrichten lassen – und der Profi weiß dann auch, wo man anständigen Webspace bekommt. ;)
schrieb am 3. Januar 2010 at 22:36 | Permalink
Uff das hätte ich jetzt nicht gewusst das man da auch noch eine andere Datenbank haben muss die höher ist. Bloss gut das ich nicht alle Ups automtisch mitmache
schrieb am 3. Januar 2010 at 23:46 | Permalink
@Thomas: Immerhin ist das einigermaßn dokumentiert. Aber prinzipiell hast du natürlich recht, obwohl ich die Folge: Kostenlose Bloganbieter fast alle nicht leiden kann, da verkommt eine Kommentarabgabe zum Spießrutenlauf. Professionell einrichten lassen = Bares Geld, ob man davon den eifrigen Schreiber überzeugen kann? In Zeiten in denen Baumarktketten einladen alles, aber auch wirklich alles selber zu machen, sollte man sich nicht wundern, wenn das kaum ein macht.
@Jan: Ja, die Automatik und ihre Tücken. Immerhin hätte die WP beim Update darüber informiert, das deine Datenbank nicht passt. Vielleicht ein kleiner Wehrmutstropfen.
schrieb am 3. Januar 2010 at 23:59 | Permalink
Klar, die meisten kostenlosen Bloganbieter sind Mist, das liegt aber auch nur daran, dass die Leute den Mist nehmen. Zudem gibt es auch einen Anbieter der WordPress-Blogs anbietet. Wie der heißt kannst du dir denken und dort dürfte es wohl kaum Probleme mit dem Speicher geben. Dass sich keiner einen Blog für Geld machen lässt versteh ich natürlich, aber darauf wollte ich weniger raus. Viel mehr darauf, dass man sich auch nicht im Baumarkt beschweren darf, wenn man alle Bretter krumm sägt weil man mit der Profi-Säge nicht umgehen kann ;)
schrieb am 4. Januar 2010 at 08:35 | Permalink
Also die kostenlos Bloganbieter nehme ich auch nicht, da ist es bei den Kommentaren wie Robert sagt ein Spießrutenlauf.
Was Thomas aber wieder sagt das sich keiner einen Blog machen lässt für Geld ist falsch. Es ist nur nicht so einfach jemanden zu finden der dieses auch zuverlässig macht, weniger wegen den Templates sonder eher in der Hinsicht auf den Einbau verschiedener diverser Pluggins. Ich habe da mal gesucht, Angebote für Templates für fast 1000€ ja, aber keiner konnte so richtig Pluggins installieren in der Form wie ich es wollte
schrieb am 4. Januar 2010 at 17:36 | Permalink
Wie stellst du dir denn den Einbau von Plugins vor? Im Grunde gibt es da ja nicht gerade viel einzustellen und grundlegend anders zu machen, von einigen speziellen Plugins mal abgesehen, die dann aber auch meist ziemlich schlecht programmiert sind. Die Gelegenheit einen Blog gegen Geld zu machen hatte ich bisher noch nicht. Ich setze zwar WordPress bei meinen Kunden (übrigens für einen angemessenen Preis, nicht für 1000 Euro) ein, nutze es dann aber als Content Management System für eine Website und nicht als richtigen Blog.
schrieb am 4. Januar 2010 at 18:16 | Permalink
Hi Thomas du kannst dich ja mal gern über die Webseite bei mir melden, dann kann man das per Mail besprechen
schrieb am 5. Januar 2010 at 16:07 | Permalink
Ich denke auch, das grundlegende und wirklich finanziell lohnenswerte sind der Betrieb und die Instandhaltungs des Blogs. Sprich: Umbauen des Theme’s nach Kundenwünschen, modifizierungen, Einbau von Plugins oder jQuery, Pflege von Updates, Sicherung der Datenbank, SEO-Optimierung und, und und… von daher könnte ich schon vorstellen, das ein monatlich finanziertes Modell funktionieren könnte. Wenn du genug Geld hast kannst du sogar Leute bezahlen die für dich Bloggen :)
schrieb am 5. Januar 2010 at 19:05 | Permalink
@ Jan: Ohne Impressum bzw. E-Mailadresse / Kontaktformular auf deiner Seite kann ich mich nicht melden ;)
@ Robert: Monatliche Zahlung würde ich nie machen. Schneidet man sich als Webdesigner nur ins eigene Fleisch. Sowas geht nach Aufwand, denn die Leute denken “Ich zahl jeden Monat 10 Euro, also muss der springen wenn ich hüpf sag”. Zwar kann man über ein monatliches Modell im Sinne von “Backups + Updates” nachdenken, aber ich persönlich hab wenig Lust die Verantwortung für die Datensicherung zu übernehmen. Dafür ist es mir schon zu oft passiert, dass ein Datenbank-Backup defekt war – vielleicht erinnerst du dich noch an den Hackerangriff auf Schwarzdenker, da hatte ich exakt dieses Problem…
schrieb am 16. Januar 2010 at 00:11 | Permalink
@Thomas: Keine tägliche Sicherung? Ich finde ein Plugin für WP beispielsweise sehr praktisch, das im Hintergrund per Cron die Datenbank 1x täglich sichert, 30 Tage speichert und dann entsprechend löscht. Aber gut, das ist natürlich keine Garantie, dazu müsste man auch Hardwareredundant arbeiten. Mit dem monatlichen Beitrag gebe ich Dir natürlich recht, den kleinen Finger reichen und die ganze Hand nehmen. Auf das sich die unzähligen “mach mal” demnächst ihre eigenen Seiten schrauben :)
schrieb am 16. Januar 2010 at 12:48 | Permalink
Hi Thomas ich habe mal einen neuen Blog aufgesetzt
und versucht alles selbst zu schaffen, ist zwar
noch nicht alles so wie ich mir denke, aber danke für dein Angebot
Ist da auch schon das neue Wordpress