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
