PHP5 + FastCGI + APC: Können die Threads den Cache teilen?

Apache, Lighttpd, nginx, Cherokee
theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

PHP5 + FastCGI + APC: Können die Threads den Cache teilen?

Post by theomega » 2007-04-10 17:14

Hallo leute,
ich habe einen Apache 2.0 mit mod_fcgid und PHP5 im Einsatz. Zusätzlich läuft als PHP-Modul noch APC. Das bringt einiges an Geschwindigkeit, jedoch teilen die einzelnen PHP-Instanzen ihren Cache nicht. Da die Instanzen alle x-hundert Requests neugestartet werden hält der cache natürlich nicht so lange und außerdem führt jeder getrennt seinen Cache.

Ist das design-bedingt so oder gibt es eine Möglichkeit alle php-instanzen zu vernetzten (shared memory oder sowas?)

System ist gentoo unstable, der apc ist mit dem use-flag "mmap" kompiliert. Config wie folgt:

Code: Select all

extension=apc.so
apc.enabled="1"
apc.shm_segments="1"
apc.shm_size="128"
apc.optimization="0"
apc.num_files_hint="1000"
apc.ttl="3600"
apc.user_ttl="3600"
apc.gc_ttl="3600"
apc.cache_by_default="1"
apc.filters=""
apc.mmap_file_mask="/apc.shm.XXXXXX"
apc.slam_defense="0"
apc.file_update_protection="2"
apc.stat="1" 
Der apc.php (Status-Interface) zeigt auch recht deutlich das es momentan nicht so ganz funktioniert: Nach jedem Refresh ist die Uptime eine andere, je nachdem welchen Prozess ich erwische.

Wer hat mir nen Tipp?

Danke
TO

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: PHP5 + FastCGI + APC: Können die Threads den Cache teilen?

Post by kase » 2007-04-11 18:56

Ich habe irgendwann mal gelesen, dass jeder php-FCGI Prozess seinen eigenen Cache hält, wie du ja auch geschrieben hast, und eine andere Umsetzung nicht möglich ist. Ansonsten wäre es ja auch möglich, sogar php-CGI Konfigurationen mit dem Cache zu beschleunigen (was IMHO zumindest damals, vor ca 1.5 Jahren, auch nicht möglich war).

Entsprechend sollte man, wenn man einen php-Cache verwendet, sehr hohe MaxRequests (10000+) setzen, ansonsten wird der Cache zu oft gepurged.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: PHP5 + FastCGI + APC: Können die Threads den Cache teilen?

Post by theomega » 2007-04-11 23:16

Naja, es wäre doch theoretisch kein Problem das mit shared memory zu programmieren und einige Optionen des APC sprechen ja auch für diese Möglichkeit, ich gehe eher davon aus das ich/war unfähig sind das zu benutzen und irgendwelche Anforderungen nicht erfüllen.
Wie sieht es den bei den anderen Leuten aus, ist das überall so mit der Kombination aus fastcgi und apc?