Software Guide

Die besten Tipps, Anleitungen und Downloads

Ihre Werbung auf Software Guide

Sie möchten in dieser Box oder an anderer Stelle dieser Webseiten eine Werbung schalten? Sehen Sie sich dazu am besten einfach mal die verschiedenen Möglichkeiten an.


Bessere Blog-Performance dank WordPress-internen Cache

13. Juli 2007 von Michael | Wordpress

Immer wieder hört man davon, dass man die WordPress-Performance steigern könne, wenn man das Plugin WP-Cache einsetzt. Viele vergessen allerdings dabei, auch auch WordPress eine durchaus akzeptable Cache-Funktion von Haus aus mitbringt, man muss diese allerdings halt auch aktivieren ;)

Vorgehensweise zur Aktivierung:

  1. In der Datei wp-config.php folgende Zeile hinzufügen:
    define('ENABLE_CACHE', true);
  2. Im WordPress-Order wp-content/ den beschreibbaren Unterordner cache anlegen

Das war’s auch schon. Wenn alles klappt, wird sich nach dem nächsten Blogaufruf der Ordner wp-content/cache füllen und WordPress wird nun an die Web-Browser z.T. über den Cache den Inhalt ausliefern.

Was bringt es?

Auf der Software-Guide-Startseite erfolgen durch die Cache-Aktivierung 13 Datenbank-Abfragen weniger (21 statt 34). Die Anzahl der DB-Abfragen könnt Ihr übrigens messen lassen, wenn Ihr folgenden Code in die footer.php Eures Themes einbaut, im HTML-Quellcode erscheint dann das Ergebnis:

<!-- Datenbank: <?php echo $wpdb->num_queries; ?> Abfragen, <?php timer_stop(1); ?> Sekunden. -->

Nebenwirkungen?

Unangenehme Nebenwirkungen, so wie sie öfter beim Einsatz des separaten Plugins WP-Cache beschrieben wurden, sind mir bisher nicht aufgefallen — bis auf eine Kleinigkeit: bearbeite ich einen Kommentar und markiere diesen als Spam (damit er auch schön in der Akismet-Blacklist landet), dann erscheint er nicht sofort in der Akismet-Moderation, sondern erst nach ein paar Minuten.

Cache-Ablaufzeit

Per Default läuft der Cache nach 15 Minuten (900 Sekunden) aus und wird dann wieder aktualisiert. Wenn man die folgende Zeile in der wp-config.php einfügt, kann man diesen Wert ändern:

define('CACHE_EXPIRATION_TIME', 900);

Verwendung auch durch Plugin-Entwickler

Auch Plugin-Entwickler haben einfache Möglichkeiten, die WordPress-interne Möglichkeit des Cachings zu nutzen und die Plugins performanter zu entwickeln, dazu am besten die Datei wp-includes/cache.php ansehen. Die Informationen im WordPress-Codex zum Thema Cache sind eher dürftig, allerdings gibt’s etwa auch bei gunnART ein paar weiterführende Tipps für Plugin-Entwickler.

Fazit

Insgesamt gesehen ist das Caching eine prima Sache und sollte jeder WordPress-Nutzer in Erwägung ziehen. Allerdings solltet Ihr auch nie vergessen, dass Ihr Caching einsetzt: wird etwa eine Ausgabe eines Plugins nicht zeitnah aktualisiert, so kann dies am Caching liegen — nur meist denkt man in diesem Moment nie an den Cache (Murphy lässt grüßen ;).
Bei Problemen bzw. bei Tests oder etwa zur Aktualisierung Theme-Bearbeitungen löscht man am besten den Inhalt des Cache-Verzeichnisses, WordPress baut diesen dann wieder selbständig auf.

Informationen zum Artikel:

Weiterblättern im Blog:

Was ist ein Trackback?

22 Trackbacks/Pings:

23 Comments:

Gravatar

1

uA

14. Juli 2007, 0:39

Ui ui, von 48 Anfragen auf 28 runter

Nur die Zeit verwundert mich, 2.604 Sekunden bei 48 und 2.715 Sekunden bei 28..wobei, dieser Unterschied ist ja gefühlt.. nix

Besten Dank für die Info, hauseigene Mittelchen sind bekanntermaßen die Schönsten ;)

Gravatar

2

Felix

14. Juli 2007, 1:07

Wow, danke!

Gravatar

3

juliaL49

14. Juli 2007, 9:08

Auch von mir ein großes Danke. Ich dachte immer diese Zeile *wäre* für das WP-Cache. Bei mir ging es von 79 auf 36 Abfragen runter und die Zeit halbierte sich.

Gravatar

4

Ben-Inside

14. Juli 2007, 9:10

Danke für den Tipp, werde es mal ausführlich testen. Bisher war der Effekt minimal (von 40 auf 35 – zu Beginn gar auf 105 Abfragen).

Gravatar

5

juliaL49

14. Juli 2007, 9:15

PS: Ich kann den Kommentar nicht editieren :-( (trotz eingeschaltetem JavaScript)
Warum ich schreibe: darf ich deine Kommentar-Hilfe auch für meinen Blog benutzen?

Gravatar

6

Markus

14. Juli 2007, 10:51

Hatte das Plugin mal im Einsatz. Hatte. Problematisch ist die Aktualisierung des Caches und das bei Useren eben nicht die aktuelle Seite im Browser erscheint. Bei Artikeln ist die Verzögerung kein Problem. Wenn Kommentare häufig geschrieben werden und man sich darauf bezieht, ensteht eigentlich nur noch ein verwirrendes Chaos. Das war auch der Grund warum ich es wieder rausgehauen hatte.

Gravatar

7

vienna22

14. Juli 2007, 18:12

Erstmal „Danke“ für die Tuninganleitung. Aufgrund meiner mangelhaften Fachkenntnisse habe ich jedoch 2-3 Fragen ;-)

1) So wie Ben-Inside auch festgestellt hat steigt, nach Aktivierung des Cache, beim ersten Seitenaufruf die Anzahl der Datenbankabfragen nicht unerheblich an: ohne Cache 19, 1. Aufruf 30, danach 10

a) Wovon hängt die Anzahl der Datenbank-Abfragen ab (Plugins? Anzahl der Beiträge?…) bzw. wie kann ich sie reduzieren (außer mit Caching)?

b) Könnten dadurch nicht viele potentielle neue Besucher, die eventuell auch noch per Modem surfen, abspringen bevor sie in den Genuss der kürzeren Ladezeiten kommen?

2) Schreibrechte des Cache-Ordners: Bitte um genaue CHMOD-Angabe (766?) inklusive der rekursiven Rechte; wenns geht die sicherste (paranoide) Version :-)

Schöne Grüße

Gravatar

8

Felix

14. Juli 2007, 18:47

1) Das ist ganz normal, es muss ja erst der Cache vollgeschrieben werden.

a) Hängen – mal simpel ausgedrückt – von Anzahl und Umfang der Abfragen ab, die du via Template Tags tätigen lässt.

b) Der Geschwindigkeitvorteil liegt nur auf Serverseite. Der Server kann die Seite schneller zusammenstellen und ausgeben. Die Übertragungsgeschwindigkeit zum Client verändert sich dadurch nicht.

2) Ausprobieren ;) Einfach die CHMOD-Rechte solange erweitern, bis sich der Cache-Ordner füllt. Und das Ergebnis hier reinposten ;)

Gravatar

9

Sebbi

14. Juli 2007, 19:00

Ihr wisst schon, dass die reine Datenbankzeit von WordPress fast vernachlässigbar ist, oder? Das große Problem ist die Formatierung der Artikel bei jedem Seitenaufruf und die vielen Zeilen PHP-Code, die jedes mal geladen werden müssen.

Um die Datenbankabfragen zu beschleunigen reicht es auch schon den Querycache von Mysql zu aktivieren. Dann erzeugt das kaum noch Last. WP-Cache umgeht den ganzen WordPressbierbauch und kommt gleich zum Wesentlichen, weshalb diese Art des Caches doch deutlich mehr bringt als die 2-3 ms, die man durch so einen Cache spart (zumal, die Daten so eben von der Platte des Servers anstatt aus dem RAM der Datenbank gelesen werden).

Gravatar

10

Karl

14. Juli 2007, 19:42

Im Großen und Ganzen ist das natürlich richtig, aber da mein Blog nicht alleine auf einem Server läuft und die Datenbank schon von anderen Sachen belastet wird, ist der Cache schon ne gute Sache.

Gravatar

11

vienna22

14. Juli 2007, 20:00

@ Felix + all
Als Rechte für den Cache-Ordner genügt CHMOD 700 (Besitzer rwx und sonst nix – was für ein Reim :-)
Um WordPress nicht rein zu pfuschen hab ich die Rechte nicht rekursiv gesetzt. Für die Unterordner im Cache setzt WP die Rechte mit 710.

@ Sebbi
Spielverderber ;-)
Na dann sei bitte so lieb und sag uns wenigstens wie’s geht – oder zumindest einen Link zum schlau machen – Danke schön

Gravatar

12

Dominic

15. Juli 2007, 1:57

@ vienna22
schau mal administrator.de.

Gravatar

13

Sebbi

15. Juli 2007, 2:46

@vienna22:
Falls du auf einem Shared Hosting Server sitzt wird der Anbieter seine Datenbank wahrscheinlich schon optimiert haben. Oder möchtest du einen Link auf das WP-Cache Plugin? Findet man ja schon im Artikel ganz oben.

Gravatar

14

Dominic

15. Juli 2007, 2:48

@ Sebbi
Stimmt bei mir war es schon optimiert.

Gravatar

15

Kai

15. Juli 2007, 3:00

Leider ist diese tolle Funktion erst ab Version 2.x verfügbar. Da bei mir noch die 1.5.2 Versionen ohne Probleme arbeiten muß ich wohl vorerst auf das interne Caching verzichten. Sollte ich irgendwann die Zeit für ein Update haben, werde ich mich auf jeden Fall gerne an diese Anleitung erinnern. Mein Server wird sich freuen.

Gravatar

16

Boris

15. Juli 2007, 11:56

Bei mir passiert geradewegs das Umgekehrte:

Ohne Cache: 37 Abfragen in 2,xx Sekunden
Mit Cache: 78 Abfragen in 7,xx Sekunden

WP hat zwei Dateien im Cache-Ordner angelegt, die standhaft bei 0 KB bleiben.

Gravatar

17

vienna22

15. Juli 2007, 19:17

@Sebbi, Dominic
Danke für die Tipps
Das ist mir dann doch eine Nummer zu hoch und vor allem zu teuer: Bei DomainFactory ist das Aktivieren des Query-Cache erst ab ManagedServer (ab 89,95 Euro/Monat) möglich

@Boris
Ruf die Seite ein 2. Mal auf, dann sollten die Abfragen weniger sein.

Gravatar

18

Boris

16. Juli 2007, 10:50

@vienna22
Es ändert sich auch bei mehrmaligem Aufruf gar nichts. Ist das ein Feature von WP 2.2.x. und nicht von 2.0.x?

Gravatar

19

Frank

16. Juli 2007, 10:55

Nicht immer ist das Cachen sinnvoll, der „Laie“ denkt oft nicht an den Cache, deshalb sollte man wohl mit Hilfe eines Plugins dafür sorgen, dass immer dann, wenn eine Anwendung läuft, die einen leeren Cache erfordert, der Cache auch geleert wird. (beispiel: du änderst einen bestehenden Beitrag, im Cache bleibt aber die alte Version) Das ist ziemlich simpel machbar. Die Funktion wp_cache_flush ist auch in der cache.php zu finden.

add_action('publish_page', 'wp_cache_flush');
add_action('publish_post', 'wp_cache_flush');
add_action('edit_comment', 'wp_cache_flush');
add_action('delete_comment', 'wp_cache_flush'); 
add_action('private_to_published', 'wp_cache_flush');

Mittlerweile gibt es auch ein Plugin, was die eine Übersicht zum Cache bereitstellt – WP Cache Inspect.

Gravatar

20

OverflooD

14. August 2007, 21:15

Ein ernüchterndes Ergebnis: von 117 Abfragen auf 113 Abfragen…

Gravatar

21

Michael

6. Oktober 2007, 18:17

Mein Problem sind nicht die Ladezeiten, sondern eine zu hohe Prozessorbelastung meines Servers.
Ich bin nun unsicher, was nun mehr bringt. WP-Cache oder der eingebaute Cache in WordPress. (Ich benutze Version 2.3). Und wie wirkt sich die Cachezeit aus?
Auf einer Seite habe ich gelesen, dass man bei WP-Cache die Zeit auf min. 7200 s stellen soll und die Zeile „add_action(‚comment_post‘, ‚wp_cache_get_postid_from_comment‘, 0);“ auskommentieren soll.

Wirkt sich eine lange Cache Zeit nicht auch so aus, dass User neue Kommentare erst nach dieser Zeit sehen oder verstehe ich da was falsch? Ich glaube nämlich, dass die Prozessorauslastung durch viele Kommentare in kurzer Zeit entsteht. Aber die Benutzer sollen natürlich schon merken, wenn ein neuer Kommentar kommt.

Gravatar

22

Heiko

1. November 2007, 15:49

Ich dreh hier noch durch. Mein Blog hat eigentlich super Werte was die Anzahl der Abfragen angeht: 19 Abfragen

Brauch dafür aber 2-5 Sekunden. Seitenaufbau dauert 5-8 Sekunden. Vor dem Umbau (Neues Theme, WordPress 2.3, einige Plugins) lief das besser.

Woran kann es liegen?

Gravatar

23

Sara

8. November 2007, 17:13

Hi,

post_queries cachen sollte damit gut funktionieren:

http://wordpress.org/extend/pl.....d-caching/

lg

Sara

Die Kommentarmöglichkeit ist derzeit für diesen Artikel ausgeschaltet.

Blog-Kategorien

Volltextsuche

Neueste Artikel

Neueste Kommentare

Neueste Trackbacks/Pingbacks

Andere Projekte

Blogparade

dient als zentrale Anlaufstelle für Blog-Paraden bzw. Blog-Karnevals und andere von BloggerInnen veranstaltete Aktionen.

Mediadaten

Feed-Statistik:
Feedburner

Software Guide gibt es seit Dezember 2005 und es werden durchschnittlich 4 Blog- Beiträge/Monat veröffentlicht. Die Themenschwerpunkte sind in der Tagcloud ersichtlich. Mehr Infos...

Links

 

Nach oben

Wordpress

© 2005-2016 Software Guide | ISSN 1864-9599