Re: [LA-discussions] [TECH] Processes MySQL

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Yann wrote:
Je n'ai aucune idée de tout ça, en fait je fais juste un site web assez
classique en PHP. Je fais bien mes mysql_close(), même si c'est
normalement fait automatiquement par PHP à la fin du script.
Comment faire pour savoir d'où ça vient ?
Le problème se produit sur le site "de prod", un hébergement mutualisé
avec cPanel pour l'admin, tournant sur Linux Centos. Je n'ai jamais
constaté ce problème sur mon site "de dév" (Kubuntu).

Yann

Ah... PHP...
Gros souci, on n'est pas capables de deviner d'où (de quel script) provient la connexion "idle". On devrait pouvoir tracer le processus (au sens "Unix" du terme) en forçant la connexion à MySQL par le réseau (sur l'interface locale, en interdisant toute connexion depuis l'extérieur) au lieu de sockets unix : "SHOW PROCESSLIST" nous fournira un numéro de port, qui permettra de retrouver le processus grâce à netstat... Mais manque de pot avec Apache et PHP je crains qu'on ne se retrouve face à un processus "php tout court" ou carrément "httpd" donc pas d'info sur le script incriminé :-/ Autre solution, ajouter dans les scripts PHP du code qui, à chaque connexion MySQL, ira logger un timestamp (accompagné du nom de la page appelante) qu'on mettra en parallèle avec la colonne TIME pour retrouver le script qui provoque cet oubli de fermeture de connexion.

Côté serveur MySQL on peut vérifier quelles sont les valeurs associées aux différents timeout (en solution de secours on pourrait forcer MySQL à décider lui-même de fermer la connexion). Tu n'utilises pas de pooler de connexion ? (Je pense que la réponse est "non" mais on n'est jamais trop sûr)
Tu utilises le moteur MyISAM ou InnoDB ?
Est-ce que "SHOW ENGINE INNODB STATUS" t'indique des problèmes (deadlocks ou autres joyeusetés du même style) ?

D'autres possibilités utilisant strace et gbd : http://www.mysqlperformanceblog.com/2007/02/08/debugging-sleeping-connections-with-mysql/

Bon courage.

  =^.^=


---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/