Choisir une valeur pour wait_timeout et interactive_timeout dans la configuration MySQL?

12

Nous avons un serveur en direct qui est durement touché, nous essayons donc d'optimiser tout ce que nous pouvons. Nous avons exécuté le script MySQLTuner dessus ( http://mysqltuner.com/ ) qui nous dit que nous devons définir une valeur inférieure à 28800 pour wait_timeout et interactive_timeout. Il y a beaucoup de numéros possibles pour choisir entre 1 et 28800!

J'ai recherché la signification de ces variables dans la documentation MySQL mais cela n'a donné qu'une description très basique et aucune indication quant au choix d'une valeur.

Y a-t-il une valeur considérée comme une meilleure pratique généralement acceptée? Et quel serait le résultat probable du choix d'une valeur trop faible?

Merci,

Bart.

Bart B
la source

Réponses:

19

wait_timeout est le nombre de secondes pendant l'inactivité que MySQL attendra avant de fermer une connexion sur une connexion non interactive. interactive_timeout est le même, mais pour les sessions interactives (shell mysql)

La définition d'une valeur trop faible peut entraîner une interruption inattendue des connexions, en particulier si vous utilisez des connexions persistantes dans votre application Web.

Si vous définissez une valeur trop élevée, les connexions périmées peuvent rester ouvertes, empêchant tout nouvel accès à la base de données.

OMI, pour wait_timeout, vous souhaitez que cette valeur soit aussi faible que possible sans affecter la disponibilité et les performances. Vous pouvez commencer avec 10 secondes et l'augmenter progressivement si vous constatez une dégradation des performances.

Pour interactive_timeout, la modification de cette valeur n'augmentera ni ne diminuera vraiment les performances de votre application.

Charles Hooper
la source