Problème communication serveur avec un réseau vRack

Bonjour,

Depuis que nous avons choisi de passer par le système vRack d'OVH pour créer un réseau privé chez eux et mettre notre serveur web (machine A) et un nouveau serveur MySQL (machine B), nous rencontrons un problème.

En effet, nous avons de manière régulière l'erreur "La requête a échoué : #2006 = MySQL server has gone away". Nous avons tout vérifié:
- log apache,
- log PHP,
- optimisation des requêtes,
- changement des configurations PHP et APACHE (wait_timeout, max_allowed_packet, etc..)

Mais rien n'y fait. Nous n'avions jamais ce problème quand le serveur web et le serveur MySQL était sur la même machine A.

Est-ce que quelqu'un a déjà rencontré ce problème?

Merci à vous,

Bonjour,

Ca ressemble clairement à un probleme de conf mysql qui n'accepte pas les requetes trop grosses ou trop longues.
Donc je m'orienterai dessus.
Tu peux activer les slow_queries log pour savoir quelle requete pose probleme et la répéter manuellement.
Ensuite tu ajustes voir tu surdoses un peu pour identifier le probleme.

Pour avoir plusieurs gestions de bdd à travers le vrack, avec des grosses volumétries de requetes (plusieurs millions par jours) il s'est avéré que ces problèmes n'était souvent du qu'a du paramètrage.
Attention cependant si tu es entre strasbourg et roubaix/graveline, vérifie la latence qui peut jouer sur la réactivité de ton service

Bon courage
Captainadmin

On a bien activé les slow queries, mais on ne détecte rien de trop violent.
Et on a tout sur Gravelines.

Quels paramètres tu as "surdosé" de ton côté?

C'est difficile de résoudre ce genre de problème à l'aveugle
dans la plupart des cas on agit sur wait_timeout et max_allowed_packet
genre:
wait_timeout=300000
max_allowed_packet = 256M
Déjà si tu dépasses ces valeurs c'est énorme
Ensuite il faut faire une analyse un peu plus en détail, est-ce qu'il y a un loadbalancer genre haproxy ou ce sont des requetes en directes ?
Est-ce qu'il n'y aurait pas de problématiques réseaux, la connexion a été testée entre les machines ?
Le service qui envoie la requete a t'il aussi un timeout ou un point bloquant, est-ce que ca produit le meme problème avec un test manuel (en ligne de commande depuis le serveur) ?

Tu ne trouveras pas la solution sur un forum mais avec un vrai diagnostic
Tu peux aussi utiliser un mysqltuner.pl pour ajuster les paramètres du serveur mysql
Et sinon faire appel à quelqu'un qui va te dire ce qui cloche ou vérifier l'infra tout simplement ..

Server gone away c'est le serveur qui coupe la connexion, voir qui restart…
ça dit quoi les logs sql ?

@JeanR
Il n'y a pas de load balancer, ce sont bien des requêtes directes. Concernant la connexion entre les messages, nous n'avons rien fait de particulier. C'est "juste" un réseau privé chez OVH, via leur système vRack. C'est une exception qui est générée, que nous collections avec notre outil de suivi "Sentry.io". En manuel, nous n'avons jamais réussi à le reproduire.

@Sich
Il n'y a rien dans les logs…

@JeanR on est passé à:
wait_timeout=200000
max_allowed_packet = 256M

mais l'erreur s'est à nouveau reproduite… je t'avoue que je suis un peu perdu. Comme ça ne génère pas d'exception, à part se dire que c'est un problème matériel ou de configuration réseau, c'est compliqué d'y voir clair. OVH n'est pas en capacité de nous aider, et notre prestataire non plus

Est-ce que tu as fait un test de débit entre les machines ou de perte de paquet ?
Déjà testé la stabilité de la connexion avec un ping ou un ping flow
Ensuite voir si le téléchargement de gros fichiers entre serveurs fonctionne bien

Il faut avoir un peu plus de logs ou plus verbeux sur ton php qui va sans doute expliquer un peu plus l'erreur ou la requete en question.
Il est possible que ce soit une limite au niveau code comme le max_execution_time ou max_input_time qui ne soit pas assez long.
Si tu arrives à voir le temps de la requete en erreur ca peut donner des indications importantes.

Ensuite c'est l'expérience et les différents tests qui détermineront comment trouver la solution …

Bonjour à tous,

@REMIG14, aurais-tu des retours à partager suite à la dernière réponse de @JeanR?

Tu peux faire de ta solution à la communauté si tu as pu en trouver une. :slightly_smiling_face:

^FabL