Frage php APC

Apache, Lighttpd, nginx, Cherokee
AWOHille
Posts: 271
Joined: 2011-09-05 09:00

Frage php APC

Post by AWOHille » 2012-04-12 17:59

Hallo,

ich nutze unter Debian6 zum Zwischenspeichern von php Scripten APC. Eine Frage kann ich mir nicht so recht beantworten. Es geht um den Wert apc.shm_size. Im Moment liegt der Wert bei 128MB. Es laufen dort z.B recht viele Wordpress Blogs. Der Speicher selber wird relativ schnell voll bzw wird dann wieder defragmentiert. Ist ein größerer Wert generell sinnvoll? Wie kann ich für mich bestimmen, welche Größe optimal ist.

ddm3ve
Moderator
Moderator
Posts: 1142
Joined: 2011-07-04 10:56

Re: Frage php APC

Post by ddm3ve » 2012-04-21 23:46

Letztendlich nur ausprobieren.

In einer Magento shop Installation habe ich entnommen, dass mehr als 128MB wohl nicht förderlich ist.

Mit rund 64Mb komme ich auf gute Werte wobei ich für jedes Projekt / Produkt eigene fastcgi Prozesse verwende und eigene Anpassungen vor nehme.

Danach musst Du wohl selbst benchmarken, was sich wie am besten eignet.
Die beste Ergebnisse neben APC habe ich vor allem durch einen Vorgelagerten Proxy mit mod_cache erlangt.
Zum anderen hat die Komprimierung ebenfalls erheblich zur Reduzierung des Datenvolumenes beitragen und somit auch die Auslieferungszeiten erheblich reduziert. Durch den vorgelagerten Cache konnte ich auch die Requests die bis zur DB durch reichen erheblich minimieren.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

AWOHille
Posts: 271
Joined: 2011-09-05 09:00

Re: Frage php APC

Post by AWOHille » 2012-04-23 22:45

ddm3ve wrote:Letztendlich nur ausprobieren.


Das habe ich auch ausführlich gemacht. Ich habe es mit verschiedenen Cache-Größen probiert, die "Lebenszeit" der Dateien / Variablen (apc.ttl;apc.user_ttl) verändert usw. Aber so ganz einleuchten will mir folgendes nicht so richtig. Es geht um die Fragmentierung. Nach meinem Verständnis wäre es doch sinnvoll, das nur Dateien aus dem Cache verschwinden, die eine bestimmt Zeit X nicht mehr aufgerufen wurden sind. Das Ergebnis ist aber, das nach einer gewissen Zeit der Cache anfängt stark zu fragmentieren. Nun kann ich aber dem entgegenwirken und den Cache komplett leeren, wenn er voll ist, d.h., die Dateien müssen neu geparst werden und wieder im Cache abgelegt werden. Aber genauso sollte es doch nicht sein oder habe ich einen Denkfehler? Wie kann ich sinnvoll der Fragmentierung entgegenwirken ohne den Cache immer komplett zu leeren? Vielleicht kann ja einer mal Licht in das Dunkel bringen.

Gruß Hille