Czy php.cgi korzysta z php-cgi.ini?

Remigiusz 'Enleth' Marcinkiewicz enleth w enleth.com
Śro, 27 Sty 2010, 00:16:48 CET


On Tuesday January 26 2010 22:45:12 Arkadiusz Rdest wrote:
> Remigiusz 'Enleth' Marcinkiewicz pisze:
> > Swój skrypt startowy mogę udostępnić, jakby ktoś był zainteresowany. Nie
> > jestem pewien, czy jest w pełni "the PLD way", ale IMHO jest wygodny i
> > działa dobrze. Już dawno bym go podrzucił do skomentowania na -devel, ale
> > czasu nie mam żeby dopracować i opisać...
> 
> poproszę na priv'a albo linka do sciagniecia.
> z checia popatrze i pomysle nad zmianami u siebie.
> 
> teraz mam okolo 4k kont. php odpalane przez mod_fastcgid w apachu.
> ale jest problem z reloadami konfiguracji. zwykle w pamieci wisi 2-3k
> procesow PHP, no i przy relaodzie apacha (przez graceful np. w celu
> dodania nowych vhostow) load skacze bardzo konkretnie (czasem do
> 400-500, bo musi ubic te 3k procesow i wystartowac od nowa.
> 
> [...]

Od razu mówię, że skrypt testowany był na maksymalnie kilkudziesięciu 
procesach fcgi, więcej mi potrzebne nie jest. Aktualnie działa na - być może 
śmiesznych dla niektorych - czterech.

Dla mnie akurat to, że działają one stale i niezależnie od serwera HTTP 
(którym u mnie jest lighttpd, więc w sprawach związanych z konfiguracją apacha 
nie pomogę; konfigi lighttpd można w pewnym stopniu skryptować substytucją 
zmiennych np. w ścieżkach socketów) jest pożądane i celowe, choćby dlatego, że 
cache akceleratora dla danego vhosta może bardzo długo wisieć w pamięci. 
Różnica w prędkości ładowania stron zaraz po restarcie procesu fcgi, zanim się 
cache wypełni często używanymi plikami, nie jest może wyraźnie widoczna, ale 
jest mierzalna. Za to restarty jakiegokolwiek pojedyńczego procesu, czy to 
fcgi czy lighttpd, są natychmiastowe i nie wpływają na całą resztę, można 
sobie do woli grzebać w konfiguracji i testować dowolny element.

Skrypt gdzieś wrzucę jakoś pod wieczór.

Aha, fcgi w trybie proces na vhost na usera, z oddzielną dla każdego 
konfigurajcą, jest używane na dość sporą skalę przez kilka dużych firm 
hostingowych, w tym bluehost i dreamhost. Co by nie mówić o uptime ich 
serwerów i jakości obsługi technicznej, fcgi im akurat wyszło i działa dobrze. 
Fakt, że na monstrach z 8 CPU i 32GB pamięci, ale organizacyjnie jakoś sobie z 
tym poradzili.
 
> ja do przyspieszenia dzialania serwer mam reverse proxy (squid) z przodu
> serwera wwww. Sprawdza sie. Czy te accelratory dzialaj dobrze z
> srodowisku multiuserowym fastcgi? trzeba je osobno dla kazdego vhosta
> odpalac? czy wystarczy jakis jedna wspolna konfiguracja?

Akceleratory PHP, po załadowaniu modułu w konfiguracji, działają całkowicie 
automatycznie jako element parsera i, w uproszczeniu mówiąc, przechowują 
skrypty w pamięci procesu, w postaci wygenerowanej przez parser i wykonywalnej 
bezpośrednio w maszynie wirtualnej Zend Engine oraz wykonują mniejszą lub 
większą optymalizację kodu i czasami oferują jakieś API do shm (IMHO memcache 
lepszy). W środowisku multiuserowym/multiprocesowym działa to dobrze, jeśli 
przyjąć chyba dość sensowne założenie, że userzy nie korzystają z tych samych 
plików PHP. Wyjątkiem może być jakaś tam systemowa instalacja ZF, ale jakoś mi 
się nie chce wierzyć, że takie globalne kopie frameworków i bibliotek PHP są 
powszechnie i konsekwentnie używane, więc problem wielki raczej nie jest. A 
shm dzielone między userami w ogóle nie powinno mieć miejsca.

Generalnie, można powiedzieć że akceleratory przerzucają część obciążenia z 
I/O dysków i CPU na pamięć, więc jeśli serwer ma dużo wolnej pamięci a zatyka 
się na procesorach podczas wykonywania skryptów, jakiś akcelerator może 
znacząco poprawić sytuację. Jaki? Tego w sumie nie powie żaden benchmark poza 
tym zrobionym we własnym zakresie, bo różny kod może się różnie optymalizować 
konkretnymi algorytmami.

-- 
Remigiusz "Enleth" Marcinkiewicz, enleth w enleth.com
WWW http://enleth.com http://heroes.net.pl
JID enleth w jabster.pl
-------------- następna część ---------
Załącznik, który nie był tekstem został usunięty...
Name: nie znany
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : /mailman/pipermail/pld-users-pl/attachments/20100127/1398aabe/attachment.sig 


Więcej informacji o liście dyskusyjnej pld-users-pl