Neues Caching Plugin W3 Total Cache mit memcache im Einsatz

Home / Blog / Neues Caching Plugin W3 Total Cache mit memcache im Einsatz

Hab mich heute mal wieder einem immer wieder beliebtem Thema zu gewendet: Website-Caching. Momentan läuft dieses Blog und noch ein paar andere Sachen auf einem vServer von 1&1. Bis jetzt eigentlich ganz gut, aber es gibt immer irgendwelche Peaks auf dem vServer wo dieser ins wanken kommt. Das kann an der vServer-Umgebung liegen, an der Auslastung des Servers (Host-System; bin schließlich nicht alleine auf dem Server) oder aber an den Zugriffen auf die Websites. Man könnte an vielen Schrauben drehen, aber die meisten sind nicht zu erreichen. Daher kann man nur innerhalb seiner eigenen vServer-Umgebung was machen.
Zu dem Thema hab ich schon einige Sachen geschrieben. Manchmal helfen schon einige Plugins im Blog und manchmal muss man eben auch selber auf dem vServer was ändern. Meistens ist es aber eine Kombination aus beidem.

Dank eines Hinweises hab ich mir das Plugin „W3 Total Cache “ etwas genauer angesehen. Soll ja einiges können:

  • At least 10x improvement in site performance (Grade A in YSlow, when fully configured)
  • “Instant” second page views (browser caching after first page view)
  • Reduced page load time: increased visitor time on site (visitors view more pages)
  • Optimized progressive render (pages appear to load instantly)
  • Improved web server performance (easily sustain high traffic spikes)
  • Up to 80% Bandwidth savings via Minify and HTTP compression of HTML, CSS, JavaScript and RSS feeds

Bis jetzt fuktioniert dieses ganz gut. Das Plugin kann eigentlich alles was man braucht und noch mehr:

  • CDN
  • Minified und komprimiert CSS, JavaScript, Pages und Blogposts
  • RSS Caching
  • DB Caching

Damit man aber die Features vom Plugin auch alle nutzen kann, muss man entweder memcached oder APC auf seinem Server installieren. Vielleicht ist es schon installiert (lässt sich alles mit phpinfo() herausfinden), aber meistens muss das manuell installiert werden.
Ich habe mich bei meinem vServer für memcached entschieden. Dieses wurde mir auch per YAST angeboten. Leider wird da „nur“ Memcached installiert. Das Modul für PHP muss mal selber kompilieren. Nachdem ich libevent, gcc und php-devel installiert hatte, habe ich folgendes gemacht:

wget http://pecl.php.net/get/memcache-2.2.5.tgz
tar -xvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize && ./configure --enable-memcache && make

Die so erstellte memcache.so muss dann noch nach /usr/lib64/php5/extensions kopiert werden. Anschließend unter /etc/php5/conf.d eine Datei „memcache.ini“ mit folgendem Inhalt anlegen:

extension=memcache.so

Danach muss man den Webserver neustarten. Mit phpinfo() kann man kontrollieren ob memcache nun als Modul genutzt werden kann. Damit memcached auch genutzt werden kann, sollte man die Kofiguration dort auch etwas anpassen. Nach erfolgreicher Installation, z.B. mit YAST, sollte man unter /etc/sysconfig eine Datei memcached haben. Dort sucht man sich die Zeile „MEMCACHED-PARAMS=“-d -l 127.0.0.1″“ und ändert diese etwa nach „MEMCACHED-PARAMS=“-d -m 2048 -l 127.0.0.1 -p 11211″“ ab. Dabei bedeutet:

  • -d – Es soll als Daemon laufen
  • -m – Gibt die Größe des Caches im Arbeitsspeicher an (in Megabyte)
  • -l – IP auf dem der Daemon lauschen soll
  • -p – Port auf dem der Daemon lauscht

Anschließend kann man das Plugin „W3 Total Cache “ in WordPress entsprechend konfigurieren.

Ich lass das jetzt mal testweise laufen und bin mal gespannt ob die Performance so bleibt. Etwas mehr Speed könnte man noch durch die Nutzung von CDN rausholen, aber das lass ich jetzt mal weg ;) vielleicht war memcached bei einem vServer keine so gute Idee, aber bis jetzt macht es mir keine Sorgen. Die anderen Plugins waren umständlicher.