WordPress fit machen für XCache

Von | 9. September 2009

Erinnert durch ein Beitrag von Frank : eAccelerator für WordPress habe ich mal die Aktivierung von XCache für WordPress nachvollzogen. WordPress und XCache laufen bei mir schon eine ganze Weile zusammen. Darum hoffe ich das ich kein Schritt vergessen habe ;-)

Warum XCache ? XCache lässt sich unter debian 5 einfach installieren, und ist kinderleicht zu konfigurieren.

Als erstes müssen wir sicherstellen das der XCache überhaupt installiert ist.

Unter debian installieren wir XCache dafür einfach über apt-get.


apt-get install php5-xcache

Aktiviert wird XCache in der /etc/php5/apache2/php.ini
Dazu einfach folgende Zeilen in der php.ini mit aufnehmen.


[xcache]
zend_extension = /usr/lib/php5/20060613/xcache.so

Als nächste müssen wir die var cache size einstellen.
Dazu editieren wir die Datei: /etc/php5/conf.d/xcache.ini und setzten den var cache auf mindestens 2MB (im Beispiel hier 16MB). Bei mir haben sich 4 MB als optimal erwiesen.


/etc/php5/conf.d/xcache.ini
xcache.var_size  =            16M

Jetzt noch die eigentliche Cache-Größe einstellen. 64MB haben sich bei mir bewährt.

xcache.size  =                64M

Anschließend nicht vergessen den Apache neu zu starten, damit die Änderungen auch wirksam werden.

Wenn wir jetzt das ganze mit php_info betrachten sollte das etwa so aussehen:
xcache

bzw. hier noch einmal:

xcache_var

wer keine phpinfo.php auf seinem Server hat erstellt Sie sich einfach selber:

 <?php
phpinfo();
?>

Auf meinem Server habe ich den Cache auf 64M erhöht und damit gute Ergebnisse erzielt. Aber Vorsicht: der optimale Wert hängt natürlich vom verfügbaren RAM ab. Es macht kein Sinn, den Server durch zu große Cache-Werte zu zwingen, andere Sachen aus zu lagern ! Hier darf also etwas experimentiert werden.

Jetzt müssen wir nur noch WordPress dazu überreden, von dem XCache auch Gebrauch zu machen. Dazu laden wir uns die entsprechende object-cache.php herunter. Diese Datei speichern wir als /wp-content/object-cache.php.
Das wars.  Jetzt sollte die Seite, beim erneuten Aufruf deutlich schneller geladen werden.

hier mal als Vergleich
einfach folgenden Code in den Footer einsetzten:


<!-- <?php printf(__('%d queries. %s seconds.', 'kubrick'),
 get_num_queries(), timer_stop(0, 3)); ?> -->

ohne XCache: 14 queries. 0.316 seconds
mit XCache: 2 queries. 0.237 seconds

Entscheidend ist die Anzahl der benötigten Queries. Die benötigte Zeit ist sehr stark Last-abhängig und damit auf einem Produktive-Server nur bedingt aussagekräftig. Aber der Trend zu kürzeren Antwortzeiten sollte klar erkennbar sein.

Natürlich wollen wir auch Zugriff auf den xcache-Monitor haben. Dafür benötigen wir noch ein entsprechenden Eintrag in die der site.conf bzw. apache2.conf

Alias /XCacheAdm "/usr/share/xcache/admin/"

        Options Indexes MultiViews FollowSymLinks +ExecCGI
               Order allow,deny
	Allow from all

Der Monitor gibt ein guten Überblick über die Cache-Auslastung.
xcache Administration

Update: nach etwas längerer Beobachtung stellt sich raus das bei mir  xcache.var_size von 4 MB ausreichend ist.