Artikel vom 19. Januar 2010

Redesign des Headers – Nun mit ähnlichen bzw zufälligen Artikeln

Heute werden sich wohl schon ein paar gewundert haben, dass mein Header auf einmal anders aussieht und die Seitenleiste leerer geworden ist. Ich...

Artikel vom 10. Januar 2010

Retweet Buttons in Wordpress: Der Tweetmeme Button ist wieder zurück

Jetzt ist es nicht einmal 2 Monate her, wo ich einen Artikel darüber geschrieben hatte wie toll doch das Topsy Plugin ist um den Twitter Dienst...

Artikel vom 27. Juni 2009

Mehr Geschwindigkeit für Wordpress – Teil 1: Caching

Ich war dem Caching bis jetzt immer sehr kritisch eingestellt, da man doch mit einigen Einschränkungen leben muss. Ich wollte es aber noch einmal...

Artikel vom 9. Dezember 2009

Ab jetzt neue Wordpress Smilies auf hombertho.de

So manchen wird wohl schon aufgefallen sein, dass auf meinem Blog seit kurzem ganz andere Smilies zur Auswahl stehen. Die Green Smilies mussten...

Artikel vom 29. Juni 2009

Euere Meinung ist zu dem neuen Plugin WP Flash Scroll Feed Reader ist gefragt

Einigen wird es vielleicht schon aufgefallen sein, dass ich seit gestern ein neues Plugin namens WP Flash Scroll Feed Reader auf meiner Seite...

Mehr Geschwindigkeit für Wordpress – Teil 3: DB-Tuning

Veröffentlicht am 28. Juni 2009 in der Kategorie Internet

So nun geht es an das Herzstück jeden Blogs, die Datenbank. Hier hat man mehrere Möglichkeiten die Performance seines Blogs etwas zu verbessern. Aber es lohnt sich auf jeden Fall hier etwas Optimierung zu betreiben. Aber natürlich ist auch hier vorsichtig geboten. Wenn man was falsches macht, dann sind euere Daten verloren! Ich denke jeder der einen Blog betreibt sollte auch mindestens einmal am Tag seine Datenbank sichern. Es gibt dafür sogar Plugins, die einem diese Arbeit abnehmen.


Für alle, die selber einen Webserver betreiben,

sollten am besten erst einmal in der mysql Konfiguration nachsehen welche Werte hier eingestellt sind.

Folgende Konfiguration hat sich bis jetzt bewährt:

key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 16M

Wer mehr Speicher zu Verfügung hat kann natürlich auch die Werte noch ein bisschen nach oben schrauben. Aber bitte nicht übertreiben, denn viel hilft nicht viel. Man sollte schon Wissen, was man tut ;-)

Optimierung der Datenbank

Für diese Aufgabe habe ich 2 Plugins installiert:

WP-Optimize hat mir mal Tanja empfohlen. Wirklich ein tolles Tool, dass die Wordpress Datenbank per Knopfdruck von überflüssigen Einträgen befreit. Das mache ich so alle 2-3 Tage, da es keinen großen Aufwand macht und damit die Datenbank so schlank wie möglich gehalten wird. Denn nur eine aufgeräumte Datenbank ist auch eine schnelle Datenbank ;-)

DB-Tuning ist das zweite Plugin, dass ich für Datenbank Optimierungsaufgaben benutze. Dieses Plugin legt zusätzliche und alternative Indizes in der Wordpress Datenbank an. Dadurch wird der Zugriff auf die Datenbank beschleunigt. Das Plugin läuft sehr zuverlässig und kann Aufgaben wie Optimierung, Spam und Useragenten löschen in vordefinierten Intervallen ausführen.

Datenbankabfragen optimieren mittels Cache

Beim Aufruf der Webseite werden verschiedene Datenbankabfragen gemacht, die eine menge Zeit benötigen. In der Standardinstallation von Wordpress sind das gerade mal so um die 20 Abfragen. Ich habe auf meiner Startseite schon teilweise über 200 Abfragen. Das bedeutet der Webserver muss erst einmal 200 Datenbankabfragen zusammenbauen und durchführen bevor der Besucher überhaupt was zu sehen bekommt. Das kostet sehr viel Zeit und auch Rechenpower.

Wer Wissen möchte wie viele Abfragen in welcher Zeitspanne ausgeführt werden kann dies durch einfügen folgender Code Zeile im footer.php tun:

< ? php echo $wpdb->num_queries; ? > database queries in < ? php timer_stop(1); ? > seconds

Auf der Suche nach einer Lösung, wie man hier Zeit sparen kann bin ich auf ein interessantes Wordpress Plugin namens DB-Cache gestossen. Dieses kleine und tolle Plugin merkt sich die einzelnen Datenbankabfragen, die bei einem Seitenaufruf gemacht werden und schreibt diese in einem Festplattencache. Ruft nun ein weiterer Besucher diese Seite auf, so wird die Abfrage einfach aus dem Cache genommen und ausgeführt.

Mithilfe dieses Plugins wurde meine Seite so richtig schnell und ich konnte die Anzahl der Abfragen und die Dauer mehr als halbieren. Dazu kommt noch, dass man kaum Festplattenplatz fürs cachen braucht und das man im Gegensatz zum Seitencaching kaum Nachteile in kauf nehmen muss.

Das Plugin ist schnell installiert und es muss nicht viel konfiguriert werden. Die Standardcachingzeit von 5 Minuten habe ich belassen. Dazu kann man noch einschränken, was dass Plugin cachen soll und was nicht.

Ein weiterer positiver Effekt ist, dass die CPU Last immens nach unten gegangen ist. Beim ersten cachen eines Seitenaufrufs geht diese zwar mal kurzfristig hoch, aber dann sofort wieder runter.

Bevor ich dieses Plugin im Einsatz hatte schwankte meine Load so um 0.4. Nun ist sie so bei 0.02 :-D

Also wenn ihr wirklich eurem Blog wirklich schneller machen wollt, dann schaut euch mal die Datenbank einmal genauer an.

Dieser Artikel ist einer von vier Teilen, um die Geschwindigkeit bei Blogs zu steigern. Hier kommst du zu dem Hauptartikelund erfährst noch weitere Tipps und Tricks zur Performance der eigenen Webseite zu erhöhen.

Kommentare über RSS

Kommentare (33)


  1. und wieder ne kleine Ergänzung von mir :)

    Bzgl. der Konfiguration des MySQL-Server muss man aufpassen, insbesondere wenn der Speicher des Server eher knapp bemessen ist. Bei zuvielen gleichzeitigen Verbindungen kann ansonsten sehr schnell, sehr viel Speicher in Anspruch genommen werden (und im schlimmsten Fall wird geswappt).

    Zwei kleine Tools können einem helfen sich nicht zu verkonfigurieren und geben einem (hilfreiche) Tipps (z.B. der ungefähre max. Speicherverbrauch):

    http://mysqltuner.com/mysqltuner.pl
    http://www.day32.com/MySQL/

    Letzter Artikel von Olli: HDR-Aufnahme: Eidechse…


  2. danke für den beirag. bin neu mit wordpress und habe mir jetzt auch wp-optimise installiert. wenn das alles in der db sauber hält bin ich sehr zufrieden da es sehr leicht war das plugin zu installieren.



  3. Die beiden Plugins sind wirklich genial. Optimize läuft bei mir ständig mit und wird alle paar Tage mal wieder geklickt und DB-Tuning kommt hin und wieder zum Einsatz.
    Mit beiden bleibt einfach auch die Datenbank sauber und wird bereinigt von dem … den wir eh nicht mehr drauf haben.



  4. @Olli: Vielen Dank für die wertvollen Hinweise und die 2 Links. Ich habe in meinem Server 4 GB Speicher. Da ist noch ne Menge Reserve vorhanden. Wenn die Maschine aber dann swappen darf, dann ist der Geschwindigkeitsvorteil ja schnell wieder dahin :-X

    @Aiona: Also als Blogneuling hat man noch den Vorteil, dass die Datenbank noch schön sauber ist. Je mehr man aber bloggt umso schneller ist die Datenbank voll. Am schlimmsten sind die Plugins, die Datenbanktabellen beim aktivieren ersten und beim deaktivieren dann nicht mehr löschen. So hat man auch schnell eine Menge Müll in der Datenbank zusammen :-(

    @Tanja: Die Plugins funktionieren sehr gut aber unnötig angelegte Tabellen von schlecht Programmierten Plugins werden leider nicht gelöscht. Da muss man dann händische die Überflüssigen Tabellen löschen. Das sollte man aber auch nur tun, wenn man auch weiß was man macht :-D

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  5. Mike GERMANY

    200 Queries? Was zur Hölle ist denn da los? :shock:

    PS: cool, dass man jetzt mit dem iPhone Kommentare verfassen kann … Jetzt noch dafür sorgen, dass beim tippen nicht immer zum Seitenanfang gesprungen wird und ich verliere kein Wort mehr über WPtouch ;)



  6. Hi Thomas,

    hast Du das DB Cache laufen?

    Hab das mal versucht, sieht auch gut aus, allerdings fangen dann die Probleme an, konnte zB keine Kommentare mehr editieren..

    Und bei dem ganzen SPAM ist das dann leider ein No-Go.. Ist das bei Dir auch so?

    Letzter Artikel von Matthias: Sextape: Mario und die Prinzessin


  7. @Mike: Ja vielleicht liegt es auch an den vielen Links. Da muss ich vielleicht noch ein bisschen kürzen ;-)
    Häh ich hätte gedacht WP-Touch ist deaktiviert und bei der Kommentarfunktion habe ich auch noch nichts gemacht. Sehr seltsam ?!? Bei mir erscheint auf dem Iphone die normale Seite. Ich habe nämlich das Problem, das WP-Touch nicht mit GZIP so recht will und daher rumzickt. Deshalb hatte ich es vor einer Vorche deaktiviert.

    @Matthias: Ja klar habe ich DB-Cache laufen. Bei mir funktioniert alles Problemlos. Hast du noch ein spezielles Kommentar Plugin? Einzige Einschränkung war nur sobald ich den Spam gelösch hatte immer noch die Anzahl vorher dort stand. Aber nach 5 Minuten Caching Zeit zeigt er auch den richtigen Wert an. Es gibt auch bestimmt eine Möglichkeit die Admin Konsole vom Cache auszuklammern

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  8. Mike GERMANY

    Ja, WPtouch ist schon deaktiviert, aber irgendwie scheint sich der Editor geändert zu haben … jedenfalls kann ich mittlerweile Texte übers iPhone eingeben – es ist zwar ein K(r)ampf, aber es geht. :grin:



  9. Bei der DB-Config mit der my.cnf sind zwei Werte noch ganz interessant:
    tmp_table_size
    max_heap_table

    …sprich temporäre Tabellen im RAM – und nicht auf der lahmen Festplatte. Allerdings sieht es wohl so aus, dass die WP-Datenbank nicht so ein Knaller ist, manche Tabellen müssen aufgrund ihrer Eigenschaft auf die Platte geschrieben werden.

    Der heap-Wert sollte immer so groß sein, wie die tmp_table, aktuell verwende ich bei beiden 256 MB – 128 sollten aber reichen.

    Was das Plugin DB-Cache betrifft, bin ich gerade ein bissel verwirrt – das hört sich nach genau dem Job an, den ein query_cache der Datenbank selbst schon macht?! Muss ich mir mal anschauen… :-)



  10. Hmmmm…!
    Ich hatte hier kommentiert, aber irgendwie…?!

    PS: Bei Teil 1 der Serie hatte ich auch einen Kommentar geschrieben, der ist auch nicht zu sehen?
    Ich kommentiere hier nie wieder…!! *gg

    PPS: Uhmmm… jetzt sind alle da. Immer diese chacherei :p



  11. @Mike: Es gibt noch eine kleine Überraschung ;-)
    @Marc + @Marc: Die Kommentare kommen alle an. Die Spam Bine hat dich aber als Spam markiert und das hat nichts mit dem Cache zu tun ;-) Ich habe ja 10.000 Platten drin und mit auslagern kein Problem. Allerdings habe ich auch 4 GB Hauptspeicher und möchte so lange es geht auch noch dort alles behalten :-) Das mit dem Query Cache sollte man meinen, dass es dass gleiche ist, aber mit und ohne Plugin merkt man einen Geschwindigkeitsboost. Falls du zu neuen Erkenntnissen gekommen bist, darfst du gerne bescheid sagen :-D

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  12. Mensch, Du bloggst aber auch …. da kommt man ja kaum noch mit dem Kommentieren hinterher ;-)

    Über WP-Optimize hab ich auch bei Tanja erfahren – ist bei mir auch schon seit längerer Zeit problemlos und sehr zuverlässig am Laufen. Insbesondere die Option zum Löschen der ganzen Revisionen finde ich klasse.

    DB-Tuning will ich gleich auch mal ausprobieren. Ach … und da sind ja noch die anderen Tipps aus dieser Serie. Mein Gott …. ich bräuchte einfach mehr Zeit in meinem Leben :hammer:

    Letzter Artikel von plerzelwupp: Nominiert als weltbester Blogartikel aller Zeiten


  13. Wie Spam? Ich fühle mich beleidigt :pistolen:



  14. Mike GERMANY

    Genial, du bist mein Held. :) Jetzt wirst du allerdings in nächster Zeit mehr Kommentare von mir ertragen müssen. Einfach Spitze!



  15. @plerzelwupp: Ja im Moment bin ich recht fleissig. Leider hat sich da so einiges an Artikeln angestaut. Leider ist das aber nicht immer positiv und so werden auch viele (gute) Artikel überlesen :-( Ja mir geht es leider auch immer so, dass ich einfach zu wenig Zeit habe :-D Ich wollte aber meine Erfahrungen so schnell wie möglich aufschreiben, denn ich hatte auch schon die Erfahrung gemacht, dass Dinge schnell in Vergessenheit geraten. Wenn man es dann wieder mal braucht, dann ist man nur wieder am suchen und überlegen wie es war. Habe ich bei meiner neuen Serverinstallation gemerkt.

    @Marc: Das war die Biene, nicht ich. Ich habe da keinen Einfluss drauf :-D

    @Mike:Gerne doch. Jetzt bin ich auch Iphone/Ipod Touch fähig :-)

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  16. Finde ich eine sehr gute Idee, werde ich später mal bei mir installieren. ;-)



  17. Wow, dank DB-Cache gingen die Anfragen von 100 auf 40 runter.

    Meine Frage lautet: wird dadurch die Kommentaranzeige verzögert? Bei anderen Cache-Plugins ist das ja der Fall, da eine HMTL-Seite erzeugt wird. Ist das bei DB-Abfragen anders?
    Ich frage deshalb, weil ich morgen ein Quiz veranstalte und da wäre es blöd, wenn die Kommentare nur alle paar Minuten erscheinen.

    Letzter Artikel von juliaL49: Foto-Projekt 52 (2009) #30: Himmlisch


  18. @Jassi: Ist es auf jeden Fall ein Blick wert. Bis jetzt habe ich nunr positives gehört :-)

    @JuliaL49: Das ist ja echt mal Klasse :-) Also ich konnte keine Probleme mit den Kommentaren feststellen. Die waren alle sofort da. Am besten mal testen, um 100% sicher zu sein. Bei mir hat sich deswegen auch noch keiner beschwert :-) Deswegen bevorzuge ich das DB-Cache auch den normalen Cache Programmen.

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  19. Das WordPress PlugIn namens DB-Cache ist ja der Hammer XD
    Gut das ich diese kleine Artikel Serie von dir mitverfolgt habe =)



  20. Habe einen Nachteil von DB-Cache gefunden: wenn es aktiviert ist, kann ich keine Tags speichern! Deaktivieren während des Speicherns reicht aus, ist aber nervig.

    Letzter Artikel von juliaL49: Foto-Projekt 52 (2009) #30: Himmlisch


  21. Weiterer Nachteil von DB-Cache: Spamkommentare lassen sich nicht mehr durch einen Klick auf “Alle Spamkommentare löschen” löschen, sondern es müssen alle angekreuzt werden und dann durch Auswahl von “Löschen” im Dropdownmenü gelöscht werden. Auch sehr nervig.

    Letzter Artikel von juliaL49: Foto-Projekt 52 (2009) #30: Himmlisch


  22. Nach außen hin scheint DB-Cache bei mir sehr gut zu funktionieren – allerdings hab ich eigenartigerweise einige Probleme im Frontend. So kann ich beispielsweise auch keine Links aus der Linkverwaltung löschen oder anlegen.

    Letzter Artikel von plerzelwupp: Nominiert als weltbester Blogartikel aller Zeiten


  23. Probleme können laut anderen Blogs entstehen, weil das Plugin auch den adminbereich cacht. Eleganter wäre es nur das frontend zu cachen…



  24. @Marc
    Ganz meine Rede – den Eindruck hab ich auch.

    Letzter Artikel von plerzelwupp: Nominiert als weltbester Blogartikel aller Zeiten


  25. @Paul: Danke :-) Ja ab und zu lohnt es sich doch mal meinen Blog zu lesen :-D

    @juliaL49: Danke für die vielen Hinweise. das Tag Problem kann ich nicht nachvollziehen. Das Problem mit dem Spam kenne ich, aber ich mache es immer so: Ganzen Spam löschen und nach 5 Minuten wird auch die Zahl 0 angezeigt. Du kannst ja in dem Plugin Tables vom Cachen ausklammern. Wenn du die Tags und die Admin Konsole ausklammerst sollte es kein Problem mehr sein.

    @plerzelwupp: Komisch das Problem habe ich gar nicht. Klammer doch die Link tables vom Cahen aus.

    @Marc: Ja es gibt leider keine Option, dass man sagt, dass alles im Admin Panel nicht gecached werden soll, aber wenn du die Admintables in der Datenbank kennst, dann kann dies deaktiviert werden. Ich hatte bis jetzt noch keine Probleme mit dem Adminpanel und dem Cache.

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  26. In den Optionen gibt es aber das Feld “Cache filter” und als Vorschlag ist dort “_posts|_postmeta” eingetragen. Ich hab das so verstanden, dass dann die queries danach nicht gecacht werden. Wenn man jetzt wüsste, welche queries es gibt, dann sollte das genau die gewünschte Funktionalität haben. Ich habe es mit “_terms” probiert, aber auch das Löschen der Cache-Dateinen und das disablen und enablen des Plugins hat nichts geholfen. Ist wohl eine nicht implementierte Funktion des Plugins.

    Letzter Artikel von juliaL49: Foto-Projekt 52 (2009) #30: Himmlisch


  27. Also ich jetzt db-cache nochmal im Einsatz, bevor ich mich davon verabschiedete. Leiser hatte ich im WP-Frontend zu lange Wartezeiten, bis eine Einstellung auch “sichtbar” wurde. Außerdem machte es Probleme beim Überarbeiten der Kommentare. Zuletzt hatte ich auch die Probleme, dass neue Kommentare in FF nicht angezeigt werden – erst durch Löschen des Browsercaches wurden die neuen Kommentare angezeigt.
    Dafür finde ich mittlerweile umso mehr gefallen am Plugin “DB-Tuning” .-)

    Letzter Artikel von plerzelwupp: Nominiert als weltbester Blogartikel aller Zeiten


  28. Tja, solche Cache-Plugins cachen halt meistens viel zu viel, vor allem Dinge, die man gar nicht gecached haben möchte, wie z.B. auch Statistiken. Äußerst doof :-X



  29. @juliaL49: Ich muss zugeben, ich habe im Moment auch mehr Probleme als am Anfang und habe mal das Plugin wieder deaktiviert. Meine Datenbankzugriffe sind jetzt zwar wieder höher, aber einen Geschwindigkeitseinbruch konnte ich bis jetzt auch noch nicht feststellen. Vermutlich braucht das Plugin noch ein bisschen Zeit.

    @plerzelwupp: Also mit den Kommentaren hatte ich noch kein Problem, aber bei mir erscheint ab und zu nichts mehr in dem Backend. Wie ich bereits bei Julia geschrieben hatte ist bei mir im Moment das Plugin nicht mehr im Einsatz und ich konnte auch keinen Geschwindigkeitseinbruch feststellen

    @Tanja: Ja die Eierlegende Wollmilchsau gibt es leider noch nicht und man muss immer wieder mit Einschränkungen rechnen. Manchmal vertretbar aber manchmal dann lieber etwas langsamer und allles funktioniert :-)

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?


  30. oder selbst machen und genau nur an den Stellen einsetzen, wo man es haben will ;-)



  31. Thomas, das oberhalb von mir ist ein manueller Kommentarspammer, der heute schon auf x Blogs genau diesen gleichen Kommentar abgegeben hat. Kannst ihn getrost löschen (meinen hier ruhig auch gleich mit).



  32. Ja …. den obigen Kommentar erhielt ich auch – AntiSpamBee hat den ausgefiltert.
    AUßerdem erhielt ich heute Trackbacks von Artikeln, die mit meiner Seite absolut nichts zu tun haben. Offenbar gibt es ein Plugin, das am Ende des Artikels “related Posts” aus anderen Blogs anzeigt. Das scheint auf ein paar Schlüsselworte anzuspringen – meist jedoch daneben.

    Letzter Artikel von plerzelwupp: Nominiert als weltbester Blogartikel aller Zeiten


  33. @Tanja: Danke für den Hinweis, habe ich doch glatt mal gelöscht ;-)

    @Plerzelwupp: Die Bine scheint bei mir im Moment zu spinnen. Es werden Kommentare als Spam markiert, die überhaupt keiner sind und anders herum :doh:

    Letzter Artikel von hombertho: Der Ölwechsel - Bist du ein ganzer Mann?

Trackbacks (0)

Tweetbacks (0)

Einen Kommentar zu diesem Artikel schreiben

Ich freue mich über euere netten Kommentare. Du kannst hier offen deine Meinung zu dem Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.
Bitte unterlasst es, die Kommentare zu SEO Zwecken zu missbrauchen. Alle Kommentare werden überprüft und in solchen Fällen als SPAM markiert und gelöscht.
Für alle die gerne Werbung auf meinem Blog schalten möchten können dieses Kontaktformular verwenden.

:-) ;-) :-( :-D :lol: :-P :grin: :thumbsup: :thumbsdown: :cool: more »


Nikon-Blogger-Linkring :: powered by KLUGERD Wikiofreunde Blogverzeichnis - Blog Verzeichnis bloggerei.de