Chúng tôi có một vài hệ thống sản xuất gần đây đã được chuyển đổi thành máy ảo. Có một ứng dụng của chúng tôi thường xuyên truy cập cơ sở dữ liệu MySQL và với mỗi truy vấn, nó tạo ra một kết nối, truy vấn và ngắt kết nối đó.
Nó không phải là cách thích hợp để truy vấn (tôi biết), nhưng chúng ta có những ràng buộc mà chúng ta dường như không thể giải quyết được. Dù sao, vấn đề là ở đây: trong khi máy là máy chủ vật lý, chương trình vẫn chạy tốt. Sau khi chuyển đổi thành máy ảo, chúng tôi nhận thấy các sự cố kết nối không liên tục đến cơ sở dữ liệu. Tại một thời điểm, có hơn 24000 kết nối ổ cắm trong TIME_WAIT (trên máy chủ vật lý, thứ tôi thấy nhiều nhất là 17000 - không tốt, nhưng không gây ra sự cố).
Tôi muốn các kết nối này được sử dụng lại, để chúng ta không thấy vấn đề kết nối đó, và vì vậy:
Câu hỏi:
Bạn có thể đặt giá trị của tcp_tw numuse thành 1 không? Những mối nguy hiểm rõ ràng là gì? Có bất kỳ lý do tôi không bao giờ nên làm điều đó?
Ngoài ra, có cách nào khác để hệ thống (RHEL / CentOS) ngăn chặn rất nhiều kết nối đi vào TIME_WAIT hoặc khiến chúng được sử dụng lại không?
Cuối cùng, việc thay đổi tcp_tw_recycle sẽ làm gì và điều đó có giúp tôi không?
Trước, cảm ơn!