Hi,
getestet hab ich es mit einer kleinen Wordpress Seite, die schon etwa ein Jahr produktiv läuft. Diese hab ich einfach geclont und auf die Testserver gespielt. Als Caching Plugin für Wordpress lief Cachify von Sergej Müller und als Caching Verfahren habe ich memcached eingesetzt. Das hab ich deshalb getan, weil memcached sich besonders auf Datenbankabfragen auswirken soll. Gleichzeitig landen auch die Files im Ram. Die fertig gerenderten Daten werden von Varnish gecached und ausgeliefert.
Um es mal bildlicher darzustellen:
Aufbau: Http(s) Request -> Varnish (Wenn Daten im Cache, dann direkt Antwort, wenn nicht dann: ) -> Nginx -> ngx_pagespeed -> Memcached -> Varnish -> Http(s) Antwort
Memcached selbst schreibt die Daten ja in den Ram. Nginx läuft ganz normal mit Daten von der Platte ohne RamFS. Das war auch meine Ausgangssituation. Mir ist klar, dass sich das ganze mit SSD's noch ändern könnte, sodass memcached da evtl. überflüssig wird, aber ich kann ja schlecht Äpfel miit Birnen vergleichen. ngx_pagespeed läuft auch einfach von der Platte, auch wenn mir bewusst ist, dass tmpFS die Sache weiter beschleunigen könnte. TmpFS hat für mich auf einer SSD jedoch den großen Nachteil der vielen vielen Schreibvorgänge bei den vielen kleinen Dateien die ein Webserver meistens ausliefert. Das bringt meiner Meinung nach die SSD viel zu schnell an ihr Lebensende. Deshalb setze ich das so nicht ein. Aber hier soll das jeder nach seinen Bedürfnissen und Mitteln entscheiden.
Varnish bietet auch noch den großen Vorteil, dass es eine definierte Dauer lang (z.B. 2 Stunden), auch Daten ausliefern kann, obwohl Nginx z.b. gerade nicht erreichbar ist. Die Caching Dauer lässt sich auch aufteilen, sodass man sagt, solange Nginx erreichbar ist, Cache 1 Minute, bei Nichterreichbarkeit 1 Stunde. Meiner Meinung nach müsste sich dadurch sogar eine einfachere HA Lösung umsetzen lassen, da man sich die Replikation der DB theoretisch sparen kann. Man müsste also nur den Varnish-Cache Server und was davor noch kommt, z.b. load balancer, hochverfügbar machen.
Man müsste wohl php-fpm gegen hhvm bei sonst unverändertem Setup vergleichen wenn man sehen möchte was hhvm bringt
Ich hab hhvm nur in Verbindung mit ngx_pagespeed getestet. Nginx 1.2.1 läuft mit php-fpm. Da haben wir etwa ne Steigerung von 100% zugunsten hhvm. Wenn man nun allerdings sieht dass das Varnish Setup etwa 7x schneller ist als hhvm, steht hhvm eigentlich schon nicht mehr zur Diskussion.
Ich werde die Tage nochmals alle Setups neu aufbauen und erneut testen um Fehler ausschließen zu können, aber es sieht ganz stark danach aus, als wenn ich demnächst schauen muss, wie ich varnish in ispconfig integrieren kann, aber das dürfte ja gar nicht so schwer sein ;-)