outputbuffering und memcache

Ich bin ja Frontender. Dort, an der Front, ist neben dem perfekten Äußeren natürlich die perfekte Geschwindigkeit ausschlaggebend. Gerade, wenn die Seite vollgestopft ist mit AJAX-Spielereien, muss die Antwort des Servers sofort vorliegen, damit sich jedes Portal so anfühlt, als wäre es eine lokal installierte Software. Dabei hilft mir memcache. Memcache schreibt nach Belieben Inhalte in den RAM des Servers und macht sie einfach abrufbar. Schlau ist das, wenn man immerwiederkehrende Abfragen cached, oder umfangreiche Teile einer Berechnung.
Wenn man aber nur mal schnell langsame Seiten schnell machen möchte, bietet sich eine einfachere Methode an. Man schreibt einfach die fertig gerenderte Seite in den Speicher. Damit verbraucht man natürlich deutlich mehr, maximiert die Geschwindigkeit aber auch extrem. Am Einfachsten geht das über output-buffer. Statt den Webserver einfach alles sofort ausgeben zu lassen, schreibt man die Ausgabe in einen Puffer, den man bei Bedarf ganz schnell cachen kann. Somit bleibt, im memcache zu schauen, ob die Seite schon vorliegt, andernfalls den output-Puffer auszugeben und diesen auch gleich in den Cache zu schreiben.
Mit dieser einfachen Maßnahme ist die Auslastung der Datenbank auf 10% gefallen bei einer Geschwindigkeitssteigerung um den Faktor 10.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s