2015-06-19 22:51 GMT+03:00 Sîrbu Lucian <[email protected]>:

> Am in momentul asta in productie niste procese apache care nu inteleg de ce
> ajung sa aloce 1Gb de ram in timp.. solutia a fost sa setez ceva gen
> max_requests_per_child (e vb de apache & mod_php aici). Deci solutia e tot
> ceva asemanator cu ce faci si tu:)
>

La mine e vorba de nginx+php-fpm, insa posibil sa fie la fel si in
apache+mod_php. Nu am gasit (sau nu am stiut sa caut) cum se face alocarea
de memorie in astfel de cazuri, ma asteptam sa o elibereze dupa ce ruleaza,
probabil din considerente de caching o lasa alocata. Asta inseamna ca daca
rulezi o aplicatie "hungry" care aloca X Mb si alta mai light care aloca
mult mai putin, procesele (chiar si idle) vor arata rezervat X Mb fiecare.
Posibile solutii identificate de mine:
- pool-uri cu configuratii separate pentru fiecare aplicatie (nu stiu la
mod_php, la php-fpm e posibil)
- in loc de pm static sau dinamic, procese alocate on demand (la fel, nu
stiu daca e doar la fastcgi?), cu un idle_timeout redus (depinde de la caz
la caz, nu exista o formula universal valabila)
- alocare statica sau dinamica dar cu un max_requests scazut (ce faci si
tu).




> 2015-06-16 8:50 GMT+03:00 petrescs <[email protected]>:
>
> > > 2. esti sigur ca pe ambele vps-uri se ruleaza acelasi lucru ? ca in
> > > functie de ce php se ruleaza si ce date prelucreaza acel script memoria
> > > alocata variaza
> > >
> > > Din analiza log-urilor rezulta ca una din aplicatii se executa mai
> > frecvent pe o masina decat pe cealalta. Motivul pentru care toate
> procesele
> > php-fpm ocupau fiecare aceeasi memorie mem1 pe o masina vs. mem2
> > (mem1>mem2) pe alta masina *se pare* (TM) ca are legatura cu faptul ca
> > procesele php-fpm care raman idle pastreaza alocata memoria mem1 chiar
> daca
> > dupa aceea primesc cereri de la cealalta aplicatie care cere memorie mem2
> > mai putina.
> >
> > De aici:
> > http://serverfault.com/questions/376242/how-to-free-php-fpm-memory
> > "Normally, at the end of a PHP script, the memory consumed by PHP will be
> > automatically freed. In PHP-FPM, this memory sometimes (I don't know
> when)
> > will not be freed.[...]In other words, footprints of some PHP previous
> > processes remain on the PHP-FPM children."
> >
> > Daca are cineva dovezi privind afirmatia de mai sus, as evita sa mai
> > deschid un bug report catre aplicatie (nu exclud un memory leak).
> >
> > Bref, s-a rezolvat oarecum prin setarea pm.max_requests la o valoare mai
> > mica - aplicatia nu avea multe cereri, deci se ajungea rar la child
> respawn
> > iar in timp toate ajungeau la memorie alocata = max(memoria ceruta de
> orice
> > aplicatie). Pe cealalta masina nu aveam decat aplicatia "light" si o
> > versiune mai veche a celeilalte care nu avea cerinte mari de memorie,
> deci
> > acolo nu era observabil fenomenul.
> >
> > Silviu
> > _______________________________________________
> > RLUG mailing list
> > [email protected]
> > http://lists.lug.ro/mailman/listinfo/rlug
> >
>
>
>
> --
> --------------------------------------------
> ----THE END of this transmission----
> _______________________________________________
> RLUG mailing list
> [email protected]
> http://lists.lug.ro/mailman/listinfo/rlug
>
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui