Plantage régulier mysql

WRInaute accro
Depuis hier matin, mon serveur plante coup sur coup toutes les 4 heures.

Enfin Mysql plante, et je suis obligé de le redemarrer.

Hier, je n'arrivais quasiment pas à accéder à SSH, m'obligeant à demander un reboot de la machine. La mémoire du serveur a été changé par l'hebergeur, mais ce matin rebelotte mysl est tombé.

La j'arrive à me connecter via ssh sans probleme, et je relance mysql... mais ça va tenir combien de temps.

Je ne comprend pas ce qui se passe, ça tournait bien jusqu'alors donc pourquoi d'un coup mysql ne répond plus ?

Le serveur tourne sous FreeBSD avec apache 2 et mysql 4.1
 
WRInaute discret
Quand tu dis que MySQL plante, tu veux dire que le process tombe ou bien qu'il est bien là mais qu'il ne répond plus parceque la machine est trop occupée à faire on ne sait quoi ?

Si c'est la deuxième option, peut-être certaines grosses requêtes font-elles swapper ta machine alors que ce n'était pas le cas avant (tables plus grosses, plus d'utilisateurs concurrents ...). Dans ce cas, il faut soit plus de mémoire soit optimiser tes requêtes soit ... moins d'utilisateurs :lol: (non, je déconne)
 
WRInaute accro
Le process tombe en fait. Pour la charge serveur, elle est tres faible.

C'est un athlon 64 avec 512 Mo de ram, je pense que ça doit quand meme tenir la charge. Au niveau requete, je pense que c'est ok car sur un mutu on a tenu le choc des 15.000 visiteurs sur une journée, donc sur un dédié ça doit tenir plus.
 
WRInaute discret
Si c'est un vrai plantage, il faut te demander ce que tu as pu changer récemment :
changement de version (MySQL, PHP ... autre), modif de paramètres système, ajout de modules apache ou PHP que tu n'utilisais pas jusque là, update de certains packages linux ...

Ca peut éventuellement aussi venir de nouveaux types de requêtes ou de fonctionnalités MySQL que tu n'utilisais pas jusque là et qui seraient buggés.
 
WRInaute accro
Les dernieres MAJ systemes datent de samedi matin, donc le dédié a tourné normalement jusqu'à jeudi matin. J'ai pas l'impression que ça vient d'une mise à jour de ports.

Pour les scripts, pareil hormis des modifs d'affichages dans des scripts php, sans interventions ni conséquences sur les tables.

J'ai vraiment du mal a établir la raison de ces plantages.
 
WRInaute accro
Rien trouvé, rien d'anormal. Ce soir ça a encore laggué, interruption de quelques secondes. Enfin la on a ajouté un service dans webmin pour redémarrer mysql au cas ou il tombe, ce qui évite que le site reste down jusqu'à ce qu'on s'en aperçoive.

Et pas de traffique particulier. La on nage dans la twilight zone.

On va tenter une maj globale des ports.
 
WRInaute accro
à shrom : j'ai fait une réparation des tables par précaution, j'avais pensé.

à loletech : non on n'a pas vérifié de ce coté la.

Sinon, aujoud'ui on a re-subi un plantage. Un peu différent, sites inaccessibles. et acces ssh impossible.

On a redemandé un reboot du serveut (ça commance à faire beaucoup...

Et la après reboot, plus d"accé ssh. La on est mal. heureusement webmin fonctionne et on a pu réinstaller ssh, et on a pu se reconnecter.

Une panne matériel au niveau de l'alimentation pourrait-elle provoquer ce genre de problemes ? genre microcoupures
 
WRInaute discret
Oui c'est possible. Mais si c'est une panne matérielle, parierais plutôt pour la mémoire ou la carte mère (le contrôleur disque surtout).
 
WRInaute accro
Merci de m'aider à solutionner le probleme.

Bon on a collé quelques outils d'analyses pour cherche l'origine, et tracer la panne.

On sait maintenant pourquoi Mysql plante. Le swap disponible diminue fortement à 8 heure du matin, et fait planter Mysql.

On a regardé si il y avait une tache qui s'exécutait à cette heure la, et... Ben rien, on ne sait pas pourquoi. Du coup on a augmenté la taille du swap, et on monitore en continu pour trouver la faille.
 
WRInaute discret
Si c'est tous les jours à 8 heures précises, c'est qu'il y a bien quelquechose qui se déclenche à cette heure là.

Est-ce que tu as regardé les crontabs de tous les users suceptibles de déclencher des choses sur ta machine : root, apache, mysql, tes autres users applicatifs ...

Bon courage :!:
 
WRInaute accro
Bon, replantage hier soir... entre 16h et 17h

Difficile d'accéder par ssh (pourquoi ? mystère).

Lancement du reboot de mysql, résultat : NUL

Conclusion, le énième reboot de la machine depuis jeudi.

Dernières analyse des logs et de tout notre "appareillage" de contrôle du Serveur.

Au départ, on pensait que le swap faisait planter mysql. Aujourd'hui on s'oriente sur l'inverse. Mysql s'affole, et vient utiliser de façon gargantuesque le swap, jusqu'à faire lagguer le serveur.

Notre théorie :
Mysql se plante lamentablement suite au lancement d'un script, ou l'utilisation de plusieurs scripts php.

Constation, certains scripts présentent des dysfonctionnements avec des variables, variables utilisées pour des requetes mysql. Nous pensons que la requete envoi des éléments 'vides' dans la requete, provoquant une boucle mysql en continue, et qui au bout d'un moment génère des connexions fantomes.

Les requetes concernées utilises des variables, genre limit, page, etc... Ces scripts n'utilisent pas $get pour envoyer les variables. Alors que les memes scripts fonctionnent parfaitement sur un mutualisé. Pour palier à ce probleme, je suis obligé de modifier le script de la façon suivante :

$page=$_GET['page'];
$limit=$_GET['limit'];
$ordre=$_GET['ordre'];

Ce problème, à mon avis, vient d'un mauvais paramétrage de php. Quel serait le paramétre manquant ?
 
WRInaute accro
Bon, je sais pas si ma théorie tombe à l'eau ou pas.

Pour le problème des $_get, c'est juste un paramétrage dans php.ini :

register_global=off
à mettre sur on

Du coup, je suis pas sur que ma théorie tienne la route...
 
WRInaute occasionnel
Salut,

Les pistes restent assez faciles "théoriquement" :

- Matériel défectueux : possible, mais étonnant si ça arrive par exemple à chaque fois à 8 h du matin, et si c'est juste MySQL qui plante (sauf si le DD a un problème, là ça devient plausible).

- Changement de version logicielle, paramétrage logiciel : possible, voir du coté de MySQL donc.

- Changement de version PHP (par rapport aux globales, aux magicquotes et compagnie qui peuvent générer beaucoup d'erreurs).

Maintenant si tu n'as aucune erreur dans les logs, cela vient certainement d'une méga requête que tu fais depuis php (peut-être involontairement).

Ce que tu peux essayer :

- Backup des db et ensuite les réintroduire (ça pourrait définitivement dégager l'éventualité du disque dur)
- Backup de ton code source
- Revenir aux versions logicielles précédentes si des modifications ont été faites
- Mettre une machine en serveur chez toi sous la même config pour effectuer des tests et voir où ça coince.

Voila... j'espère que ça t'aidera un peu ;)
 
WRInaute accro
On m'a mis la puce à l'oreille ce soir. Il est possible, je dis bien possible qu'il y ait dans un de mes scripts une variable succeptible de générer une injection dans mysql.

Un $_GET. J'ai corrigé les scripts qui pourrait laisser cette faille, maintenant j'attend de voir l'efficacité.
 
WRInaute accro
SAuf que le probleme ne vient pas de la...

Encore un plantage hier soir, et ce matin. C'est de plus en plus fréquent.

Je ne sais plus quoi faire.
 
WRInaute discret
Est-ce que tu as mis en place un log de tes requêtes MySQL ? Je pense de plus en plus que ton problème doit venir de là.

Tu peux utiliser des options MySQL comme http://dev.mysql.com/doc/mysql/en/slow-query-log.html pour avoir la liste des requêtes ayant pris plus d'un certain temps d'exécution.

Quand ton serveur commence à lagger tu peux aussi essayer d'aller voir dans phpmyadmin la ou les requêtes qui sont en train d'être exécutées par le moteur (je dis dans phpmyadmin car je ne connais pas la vrai commande pour le faire mais ça doit être assez facilement trouvable)
 
WRInaute accro
Bah la quand le serveur plante, on n'accède plus à rien. SSH phpmyadmin, rien nada.

Et la de toute façon le serveur est HS depuis ce matin et ne veux plus rebooter.

Je vais reprendre un mutu de toute façon, j'en ai marre de trainer un serveur boulet qui ne m'apporte que des ennuis.
 
WRInaute occasionnel
Bon, quoi qu'il en soit il faut que tu trouves ton problème, je te conseille vivement de monter une machine chez toi pour effectuer des tests.

J'ai eu des gros soucis le 13 septembre chez mon hébergeur (mutu), le site plantait sans arrêt et faisait tomber le serveur, l'hébergeur disait que c'était mes codes. Résultat : j'ai monté deux machines chez moi, avec deux configurations différentes (+ un easyphp) mais se rapprochant du serveur. Résultat : tout était ok.
J'ai changé d'hébergeur et depuis, je n'ai plus de problème.

Donc franchement, c'est la meilleure chose à faire pour le moment (t'as bien un vieux p200 qui doit trainer dans un placard non ? ;))
 
WRInaute accro
Ben j'ai trouvé finalement. Le DD était foireux, donc les plantages réguliers étaient des signes avant-coureurs.

Le disque est crashé, fin de l'histoire.
 
Discussions similaires
Haut