"MySql server has gone away" lors du redémarrage.

cocodu67... Messages postés 3155 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 mai 2024 - Modifié le 30 mars 2024 à 13:36
cocodu67... Messages postés 3155 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 mai 2024 - 4 avril 2024 à 09:01

Bonjour,

J'ai un serveur sous CentoS Linux 7 (Core) avec le kernel Linux 4.19-ovh-xxxx-std-ipv6-64.

Le serveur héberge un jeu et depuis quelques temps quand je redémarre le jeu, au bout 5 à 10 minutes ça bug et on ne peut plus y accéder. La connexion SSH fonctionne encore, l'accès MySql à distance également.

Dans etc/my.cnf j'ai ceci (j'ai retiré ce qui n'a aucune importance):
 

max_allowed_packet=800M
open_files_limit = 1524
interactive_timeout=100
wait_timeout=100

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Tout à l'heure j'ai augmenté les timeout qui étaient à 60, et j'ai augmenté le nombre maximal de paquets qui était à 600M. J'aiaussi modifié le nombre maximum de fichiers ouverts à 1524 et il était à 1024 même si je ne sais pas si ça peut être utile dans ma situation.

Quand le bug se produit, dans les logs MySql j'ai ça:
MySql server has gone away

Ceci explique donc le problème, puisque des requêtes Sql sont faites sans arrêt.

Je n'ai strictement rien modifié au fonctionnement du jeu, ni à la configuration du serveur depuis des mois, et le problème n'est présent que depuis quelques semaines.

Je n'ai pas de boule de cristal ... mais peut être qu'à force d'ajouter des choses qui se chargent au lancement du jeu ça commence à faire beaucoup pour le réglage du serveur. Même si j'avais déjà ajouté beaucoup plus de choses par le passé mais j'avais changé d'hébergeur entre temps.

Sauriez vous que faire pour régler le problème, ou au moins savoir si c'est bien lié à MySql qui est surchargé ou s'il y a un autre soucis ?

Ce que je ne comprends pas c'est qu'ensuite je relance le jeu et c'est bon le problème ne survient plus jusqu'au prochain redémarrage, ou parfois juste une fois et je relance encore puis c'est bon. Et comme expliqué, ce n'est pas immédiat, ça prend quelques minutes.

Merci d'avance

A voir également:

2 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 751
2 avril 2024 à 13:14

Bonjour,

C'est difficile à dire sans voir les logs mysql (voir /var/log/mysqld.log) aux heures concernées, mais tout laisse penser que le serveur mysql a planté à ces moments-là. En tout cas, on a besoin de voir les erreurs en question pour voir comment reconfigurer MySQL.

Si la piste des logs n'est pas suffisantes, il pourrait également intéressant de surveiller la charge mémoire (peut-être que le serveur MySQL plante car tu n'as pas assez de RAM). Il existe des outils de monitoring comme munin qui peuvent t'aider à y voir plus clair.

Bonne chance

0
cocodu67... Messages postés 3155 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 1 mai 2024 145
4 avril 2024 à 09:01

Bonjour,

C'est justement sur une requête liée au jeu qu'apparaît le message "MySql server has gone away". J'ai peut être trouvé, à l'aide de ce message, ce qui provoquait un grand nombre de requêtes lors du démarrage.

J'avais déjà constaté cette erreur ailleurs lorsqu'une page PHP mal optimisée faisait trop de requêtes, pourtant à la même base de données, sur une page qui nécessitait au moins 20 secondes pour être chargée. Les tables étaient aussi mal optimisées, rendant les requêtes trop longues.

Je ne comprends pas vraiment comment un grand nombre de requêtes peut faire tomber le serveur MySql, puisque le nombre maximum de paquets est très élevé et rien ne devrait faire dépasser la limite. Le timeout de 60 secondes est aussi en théorie suffisant partout. Puisque c'est vers la même base de données, ça utilise en théorie la même connexion donc pas de limite du nombre de connexions dépassée.

0
BoBot Messages postés 2794 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 5 mai 2024 185
4 avril 2024 à 08:50
Bonjour !
C'est Bobot, l'IA du forum !
L'erreur "MySQL server has gone away" signifie généralement que le serveur MySQL n'est plus accessible. Ce problème peut avoir plusieurs causes possibles, parmi lesquelles :

1. Le serveur a été arrêté.
2. Les requêtes exécutées sont trop longues à terminer.
3. Connectivité réseau instable entre le client et le serveur.
4. Le serveur est surchargé et ne peut plus gérer de nouvelles connexions.

Dans votre cas, je ne pense pas que l'augmentation des timeout ou du nombre maximal de paquets soit la cause du problème. Il est plus probable que le serveur MySQL soit surchargé ou qu'il y ait un problème de connectivité réseau.

Comme première étape, essayez de surveiller les ressources du serveur (CPU, mémoire, disque) lorsque le problème se produit. Si le serveur est surchargé, il faudra peut-être augmenter la capacité du serveur. Si les ressources semblent suffisantes, essayez de vérifier l'état de la connectivité réseau. Pour cela, essayez de pinguer l'adresse IP du serveur à partir d'un autre endroit sur le réseau quand le problème se produit.

Si tout cela ne donne rien, le problème peut aussi venir du serveur MySQL lui-même. Il est possible qu'il y ait un problème avec le serveur MySQL ou sa configuration. Pour vérifier cela, essayez de faire une réinstallation de MySQL ou de mettre à jour à la dernière version. Une autre idée serait d'augmenter la taille du pool de connexions MySQL (variable 'max_connections').

Sans avoir plus d'informations, c'est difficile de vous aider davantage. N'hésitez pas à examiner les journaux d'erreur du serveur MySQL pour voir si vous pouvez trouver une information plus précise sur la cause du problème.

0