Wählen Sie einen Wert für wait_timeout & interactive_timeout in der MySQL-Konfiguration?

12

Wir haben einen Live-Server, der hart getroffen wird, also sind wir bemüht, alles zu optimieren, was wir können. Wir haben das MySQLTuner-Skript darauf ausgeführt ( http://mysqltuner.com/ ), das uns mitteilt, dass wir für wait_timeout & interactive_timeout einen Wert unter 28800 festlegen sollten. Es gibt eine Menge möglicher Zahlen zwischen 1 und 28800!

Ich habe die Bedeutung dieser Variablen in der MySQL-Dokumentation nachgeschlagen, aber das gab nur eine sehr grundlegende Beschreibung und keine Anleitung zur Auswahl eines Wertes.

Gibt es einen Wert, der als allgemein akzeptierte Best Practice gilt? Und was wäre das wahrscheinliche Ergebnis, wenn Sie einen zu niedrigen Wert wählen würden?

Vielen Dank,

Bart.

Bart B
quelle

Antworten:

19

wait_timeout ist die Zeitspanne in Sekunden, die MySQL während der Inaktivität wartet, bevor eine Verbindung zu einer nicht interaktiven Verbindung getrennt wird. interactive_timeout ist das gleiche, aber für interaktive Sitzungen (MySQL-Shell)

Wenn Sie einen zu niedrigen Wert festlegen, werden die Verbindungen möglicherweise unerwartet getrennt, insbesondere wenn Sie in Ihrer Webanwendung dauerhafte Verbindungen verwenden.

Ein zu hoher Wert kann dazu führen, dass veraltete Verbindungen geöffnet bleiben und ein erneuter Zugriff auf die Datenbank verhindert wird.

IMO, für wait_timeout möchten Sie, dass dieser Wert so niedrig wie möglich ist, ohne die Verfügbarkeit und Leistung zu beeinträchtigen. Sie können mit 10 Sekunden beginnen und diese schrittweise erhöhen, wenn die Leistung abnimmt.

Wenn Sie für interactive_timeout diesen Wert ändern, wird die Leistung Ihrer Anwendung nicht wirklich erhöht oder verringert.

Charles Hooper
quelle