problème : apache ne ferme pas ses conections mysql !!?

problème : apache ne ferme pas ses conections mysql !!? - Linux et OS Alternatifs

Marsh Posté le 17-01-2005 à 10:08:49    

j'ai un probleme depuis la fin de la semaine derniere.
mon serveur web apache qui tourne sous une redhat 9 avec mysql et php
et tres tres tres lent ! apres avoir verifier un peut le systeme je remarque que le nombre de process apache et au max. En regardant les process mysql il aparait qu'il y en a tout autant !! il devraient se fermer apres chaque utilisation dans une page php mais il ne le font pas (les process mysql) il reste donc en memoire en mode sleep pendant 80s (je pense que c'est le max avant d'etre arreté par mysql lui même). le proc est a 100% aussi ! en general 20% a 30% pour mysql et le reste repartit dans les process httpd.
 
je me suis dis que c'etait un probleme avec mes versions qui etait un peut vielles ! donc mise a jour des tous les programmes :
- apache, mysql, php !
mais rien n'a changer !
je decide des passer sur un serveur de secour (avec heartbeat) le proc est plus petit AMD 1800+ et 512 Mo (contre 2600+ et 1Go pour le serveur principal). La aucun soucis que ce soit avec les anciennes versions et les nouvelles versions) !!!  
 
donc ou peut se situer le problème d'apres vous ?
 
l'ajout de 512mo au serveur principal n'a rien changer !
la seul solution (qu'i n'en est pas une est de relancer apache et la tout repart a zero et le serveur tourne bien mais pour une dizaine de minutes avec d'etre a nouveau saturé par mysql)
 
 
version des softs actuel :
apache 1.3.33
mysql-max-4.0.23-pc-linux-i686
php-4.3.10
 
toute aide sera la bien venue !
 
Merci d'avance
 
Laurent

Reply

Marsh Posté le 17-01-2005 à 10:08:49   

Reply

Marsh Posté le 17-01-2005 à 10:55:35    

je tiens a preciser aussi que j'utilise pmysql_connect() et non mysql_pconnect() au cas ou certain demanderais ;)
 
Laurent

Reply

Marsh Posté le 28-01-2005 à 13:39:21    

bon la resolution n'est pas totale car en fait un deuxieme serveurs etait connecté a la base mysql pour la replication de celle ci. il pouvait aussi remplacer le sereur si celui ci tombait en panne avec heartbeat !
il se trouve qu'apres reinstalation de ce serveur secondaire  j'ai du recopier la base mysql du primaire sur ce secondaire. j'ai au passage fait un "flush master" pour vider les log de replication et tout est rentrer dans l'ordre depuis la fin de l'install !
probleme des log de replication non vide depuis longtemp ou pb sur le serveur secondaire qui faisait bugguer le principal ? je ne sais pas trop ! je verrais si le probleme se pose a nouveau d'ici quelque mois !

Reply

Marsh Posté le 16-02-2005 à 12:17:14    

comme le probleme est revenue apres un temps voila la vrai solution!!
 
 
 
apparement php s'entremelle les pincaux qu'on il y a un peut trop d'includes.
 
le probleme etait que des conection mysql etait perdus par php. Elles etaient encore active et utiliser de la memoire et du proc mais n'etait plus accessible par le code php !
en faite un connection etait ouverte puis plus loin dans le code un include d'include réouvrer la même connection !  
j'ai suprimmé ca et tout est rentré dans l'ordre !
 
probleme de codage ?  
bug de PHP ?  peut etre etant donne que si on ouvre plusieurs fois la même conection sans que ce probleme ce reproduise dans un même fichier (pas dans des includes).
 
voila !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed