Kami memiliki beberapa sistem produksi yang baru-baru ini dikonversi menjadi mesin virtual. Ada aplikasi kami yang sering mengakses database MySQL, dan untuk setiap permintaan itu membuat koneksi, permintaan, dan memutus koneksi itu.
Itu bukan cara yang tepat untuk query (saya tahu), tetapi kami memiliki kendala yang sepertinya tidak bisa kami selesaikan. Bagaimanapun, masalahnya adalah ini: sementara mesin itu adalah host fisik, program berjalan dengan baik. Setelah dikonversi ke mesin virtual, kami melihat masalah koneksi yang terputus-putus ke database. Ada, pada satu titik, 24.000+ koneksi soket di TIME_WAIT (pada host fisik, yang paling saya lihat adalah 17000 - tidak baik, tetapi tidak menyebabkan masalah).
Saya ingin koneksi ini digunakan kembali, sehingga kita tidak melihat masalah koneksi, dan karenanya:
Pertanyaan:
Apakah boleh untuk menetapkan nilai tcp_tw_reuse ke 1? Apa bahaya yang jelas? Apakah ada alasan saya tidak boleh melakukannya?
Juga, apakah ada cara lain untuk mendapatkan sistem (RHEL / CentOS) untuk mencegah begitu banyak koneksi masuk ke TIME_WAIT, atau membuatnya digunakan kembali?
Terakhir, apa yang akan dilakukan dengan mengubah tcp_tw_recycle, dan apakah itu akan membantu saya?
Di muka, terima kasih!