Memilih nilai untuk wait_timeout & interactive_timeout di konfigurasi MySQL?

12

Kami memiliki server langsung yang sangat terpukul sehingga kami berusaha mengoptimalkan segala yang kami bisa. Kami menjalankan skrip MySQLTuner di atasnya ( http://mysqltuner.com/ ) yang memberi tahu kami bahwa kami harus menetapkan nilai kurang dari 28800 untuk wait_timeout & interactive_timeout. Ada banyak kemungkinan angka untuk dipilih antara 1 dan 28800!

Saya mencari arti dari variabel-variabel ini dalam dokumentasi MySQL tapi itu hanya memberikan deskripsi yang sangat mendasar dan tidak ada panduan untuk memilih nilai.

Apakah ada nilai yang dianggap praktik terbaik yang diterima secara umum? Dan apa kemungkinan hasil dari memilih nilai yang terlalu rendah?

Terima kasih,

Bart.

Bart B
sumber

Jawaban:

19

wait_timeout adalah jumlah detik selama tidak aktif yang akan ditunggu MySQL sebelum menutup koneksi pada koneksi non-interaktif. interactive_timeout sama, tetapi untuk sesi interaktif (mysql shell)

Menetapkan nilai terlalu rendah dapat menyebabkan koneksi turun secara tak terduga, khususnya jika Anda menggunakan koneksi persisten dalam aplikasi web Anda.

Menetapkan nilai terlalu tinggi dapat menyebabkan koneksi basi tetap terbuka, mencegah akses baru ke database.

IMO, untuk wait_timeout, Anda ingin nilai ini serendah mungkin tanpa mempengaruhi ketersediaan dan kinerja. Anda bisa mulai dengan 10 detik dan secara bertahap meningkatkannya jika Anda melihat kinerja yang menurun.

Untuk interactive_timeout, mengubah nilai ini tidak akan benar-benar menambah atau mengurangi kinerja aplikasi Anda.

Charles Hooper
sumber