[rofug] Timeout la semafoare

10 views
Skip to first unread message

Sergiu

unread,
Oct 25, 2009, 3:16:04 AM10/25/09
to ro...@rofug.ro
Salutare,

Am o problema cu un sistem FAMP care functioneaza cu Apache 2.2 + mod_fcgi si foloseste APC pentru cache opcode PHP. Isi creeaza mai multe semafoare care am impresia ca raman deschise in memorie pe o perioada nelimitata. Nu am folosit semafoare in programare, deci nu stiu sigur cum ar trebui sa le tratez, dar presupun ca ar trebui sa se inchida la un moment dat din aplicatie. In cazul de fata raman deschise mult dupa ce scriptul folosit a fost interpretat - ex. sunt semafoare care imi arata ca au fost create in urma cu mai bine de 10 minute.

Stiti vreo metoda prin care pot pune un timeout pe semafoare? Eu am gasit momentan o solutie mai putin eleganta. Am marit numarul de semafoare la 1000 ca sa nu mai apara erori de tipul 500 si am facut un script care verifica rezultatul de la `ipcs -as` si sterge cu ipcrm semafoarele care sunt deschise de mai mult de 5 minute.

--
Message made from 100% recycled electrons.

http://www.lamp.ro
http://www.regex.ro
http://www.nethelp.ro

Vlad Galu

unread,
Oct 25, 2009, 4:17:33 AM10/25/09
to ro...@rofug.ro
2009/10/25 Sergiu <la...@lamp.ro>:

> Salutare,
>
> Am o problema cu un sistem FAMP care functioneaza cu Apache 2.2 + mod_fcgi
> si foloseste APC pentru cache opcode PHP. Isi creeaza mai multe semafoare
> care am impresia ca raman deschise in memorie pe o perioada nelimitata. Nu
> am folosit semafoare in programare, deci nu stiu sigur cum ar trebui sa le
> tratez, dar presupun ca ar trebui sa se inchida la un moment dat din
> aplicatie. In cazul de fata raman deschise mult dupa ce scriptul folosit a
> fost interpretat - ex. sunt semafoare care imi arata ca au fost create in
> urma cu mai bine de 10 minute.
>
> Stiti vreo metoda prin care pot pune un timeout pe semafoare? Eu am gasit
> momentan o solutie mai putin eleganta. Am marit numarul de semafoare la 1000
> ca sa nu mai apara erori de tipul 500 si am facut un script care verifica
> rezultatul de la `ipcs -as` si sterge cu ipcrm semafoarele care sunt
> deschise de mai mult de 5 minute.
>

Probabil unul din modulele tale nu apeleaza semctl() cu flagul
IPC_RMID, pentru stergerea semafoarelor. Pina identifici care din ele
e vinovat si raportezi bug-ul, e relativ ok solutia ta, cu mentiunea
ca e posibil sa ai nevoie de respectivele semafoare pentru mai mult de
5 minute.

> --
> Message made from 100% recycled electrons.
>
> http://www.lamp.ro
> http://www.regex.ro
> http://www.nethelp.ro
>

________________________________________________________
To unsubscribe send a mail to rofug+un...@rofug.ro

Sergiu

unread,
Oct 25, 2009, 6:32:07 AM10/25/09
to ro...@rofug.ro


2009/10/25 Vlad Galu <du...@dudu.ro>

  Probabil unul din modulele tale nu apeleaza semctl() cu flagul
IPC_RMID, pentru stergerea semafoarelor. Pina identifici care din ele
e vinovat si raportezi bug-ul, e relativ ok solutia ta, cu mentiunea
ca e posibil sa ai nevoie de respectivele semafoare pentru mai mult de
5 minute.

Da, ai dreptate. APC a fost instalat cu suport pentru semafoare. Am scos modulul din extensions.ini si acum nu mai face probleme. O sa instalez 3.1.3 manual, ca in porturi vad ca am doar 3.0.9, sau poate incerc alt sistem de cache.

Merci!

Vlad Galu

unread,
Oct 25, 2009, 6:35:35 AM10/25/09
to ro...@rofug.ro
2009/10/25 Sergiu <la...@lamp.ro>:

Incearca-l si pe acesta: http://trac.lighttpd.net/xcache/

Claudiu Chirita

unread,
Oct 25, 2009, 6:50:50 AM10/25/09
to ro...@rofug.ro

Sergiu

unread,
Oct 25, 2009, 6:58:05 AM10/25/09
to clau...@easymedia.ro, ro...@rofug.ro
Am incercat xcache iar apoi l-am dezinstalat. Nu mai stiu ce nu mi-a placut la el. Daca nu o scot la capat cu APC, incerc din nou.

eAccelerator il folosesc pe mai multe servere care au PHP ca DSO si sunt foarte multumit, dar in cazul de fata PHP ruleaza cu mod_fcgid si apache foloseste worker ca MPM si cum eAccelerator nu e "thread safe" nu as risca sa ma trezesc cu alte surprize mai tarziu.

Merci de sugestii!

Stas SUSHKOV

unread,
Oct 25, 2009, 8:48:55 AM10/25/09
to ro...@rofug.ro, clau...@easymedia.ro
On Sun, 2009-10-25 at 12:58 +0200, Sergiu wrote:
> Am incercat xcache iar apoi l-am dezinstalat. Nu mai stiu ce nu mi-a
> placut la el. Daca nu o scot la capat cu APC, incerc din nou.
>
> eAccelerator il folosesc pe mai multe servere care au PHP ca DSO si
> sunt foarte multumit, dar in cazul de fata PHP ruleaza cu mod_fcgid si
> apache foloseste worker ca MPM si cum eAccelerator nu e "thread safe"
> nu as risca sa ma trezesc cu alte surprize mai tarziu.
>
> Merci de sugestii!

More or less eu sunt fan nginx și când nu vine vorba de a oferi multă
libertate end-user-ilor (să adauge ei module și vhost-uri manual), merg
pe acea cale.

Ai putea încerca nginx în locul apache-ului, iar acceleratoarele
actuale, mai toate pot fi conectate și la acesta.

Doar o altă părere...


>
> --
> Message made from 100% recycled electrons.
>
> http://www.lamp.ro
> http://www.regex.ro
> http://www.nethelp.ro


--
() Campania Panglicii în ASCII
/\ http://stas.nerd.ro/ascii/

Lucian

unread,
Nov 6, 2009, 2:31:38 AM11/6/09
to ro...@rofug.ro
2009/10/25 Stas SUSHKOV <st...@nerd.ro>


Sau pastreaza Apache mpm worker( <3 ) si foloseste php-fpm :)
Sau incearca sa compilezi APC fara "suport" pt apxs (e config option. Daca nu rulezi php ca modul de apache nu vad ce treaba ar mai trebui sa aiba apc cu apxs).

Reply all
Reply to author
Forward
0 new messages