Pool de Connexions Épuisé

Diagnostiquer la saturation des pools de connexions.

Un pool de connexions saturé signifie que toutes les connexions disponibles vers la BDD ou Redis sont utilisées. Les nouvelles requêtes attendent ou échouent. C'est souvent un symptôme de fuites ou de requêtes lentes.

Symptômes

  • Erreurs "Connection pool exhausted"
  • Timeout sur les requêtes BDD
  • Performances qui se dégradent sous charge
  • Connexions bloquées en "Sleep"

Causes Fréquentes

  • Connexions non fermées : Le code ouvre des connexions sans les libérer.
  • Requêtes longues : Des requêtes lentes monopolisent les connexions.
  • Pool trop petit : Le nombre max de connexions est insuffisant pour la charge.

Étapes de Diagnostic

  1. Vérifiez les connexions actives (SHOW PROCESSLIST)
  2. Identifiez les connexions en Sleep depuis longtemps
  3. Examinez les requêtes longues
  4. Vérifiez la configuration du pool dans l'application

Automatiser avec MoniTao

MoniTao détecte les effets de la saturation :

  • Alertes sur les temps de réponse dégradés
  • Détection des erreurs 500 liées aux connexions
  • Historique pour corréler avec le trafic

Bonnes Pratiques

  • Utilisez des connexions avec timeout et idle timeout
  • Fermez toujours les connexions (finally, using)
  • Dimensionnez le pool selon le trafic attendu
  • Surveillez le nombre de connexions actives

Questions Fréquentes

Quelle taille pour le pool ?

Dépend de votre charge. Commencez à 10-20 et ajustez selon les métriques.

Comment détecter les fuites de connexions ?

Des connexions en Sleep depuis longtemps indiquent des fuites.

max_connections MySQL suffisant ?

Doit être >= somme des pools de toutes vos apps + marge.

MoniTao peut-il surveiller le pool ?

Non directement, mais les temps de réponse révèlent les problèmes.

Prêt à dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.