Scegli un valore per wait_timeout e interactive_timeout nella configurazione di MySQL?


12

Abbiamo un server live che viene colpito duramente, quindi stiamo cercando di ottimizzare tutto ciò che possiamo. Abbiamo eseguito lo script MySQLTuner su di esso ( http://mysqltuner.com/ ) che ci dice che dovremmo impostare un valore inferiore a 28800 per wait_timeout e interactive_timeout. Ci sono molti numeri possibili tra cui scegliere tra 1 e 28800!

Ho cercato il significato di queste variabili nella documentazione di MySQL, ma ciò ha fornito solo una descrizione di base e nessuna guida per la scelta di un valore.

Esiste un valore che è considerato una best practice generalmente accettata? E quale sarebbe il probabile risultato della scelta di un valore troppo basso?

Grazie,

Bart.

Risposte:


19

wait_timeout è la quantità di secondi durante l'inattività che MySQL attenderà prima che chiuda una connessione su una connessione non interattiva. interactive_timeout è lo stesso, ma per sessioni interattive (mysql shell)

L'impostazione di un valore troppo basso può causare la caduta imprevista delle connessioni, in particolare se si utilizzano connessioni persistenti nell'applicazione Web.

L'impostazione di un valore troppo alto può far rimanere aperte le connessioni obsolete, impedendo un nuovo accesso al database.

IMO, per wait_timeout, si desidera che questo valore sia il più basso possibile senza influire sulla disponibilità e sulle prestazioni. Potresti iniziare con 10 secondi e aumentarlo gradualmente se vedi prestazioni degradate.

Per interactive_timeout, la modifica di questo valore non aumenta o diminuisce realmente le prestazioni della tua applicazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.