Connexions persistents: No gràcies!

17 Desembre 2007

RellotgeI jo segueixo amb el meu problema: El sistema arriba a un punt que es queda “trabat”. Per què? No ho sé. Un dels altres paràmetres que a Condalis em van comentar és que tenia moltíssimes connexions concurrents a la base de dades “i que no era normal”.

Mirant, em va comentar que a “Una mar de contes”, uso el Sphider com a cercador … Cercador que per defecte usa connexions persistents a la base de dades. Què és una connexió persistent? Doncs que cada vegada que el PHP ha de demanar alguna cosa  a la base de dades s’intenta connectar a la base de dades a través d’alguna connexió que ja existís amb anterioritat, evitant haver de “reconnectar” cada cop. I deixant les connexions sense tancar.

Això és vàlid quan el servidor no és Apache … en aquest servidor les peticions ens distribueixen entre “fills”, i els “fills” no poden veure les connexions que tenen entre ells. Això vol dir que quan una connexió es crea, es queda activa esperant algú altre que la faci servir … cosa que no passa mai. Això “ocupa” entrades al servidor MySQL. Això alenteix el MySQL.

De fet, quan ho vàrem mirar, “Una mar de contes” ocupava vora 47 peticions, totes elles inactives … i Megajocs 3 executant-se en aquell moment.

Ahir a la nit vàrem desactivar aquesta opció directament al servidor, i vaig modificar el codi amb l’objectiu de carregarme tots els mysql_pconnect que facin servir 3ers. Comprobarem si ara funciona millor.