Máy chủ của chúng tôi bị quá tải với các phiên TCP / IP, chúng tôi có 1200 - 1500 trong số chúng. Hầu hết chúng được treo ở trạng thái TIME_OUT. Nó chỉ ra rằng một kết nối ở trạng thái TIME_OUT chiếm một ổ cắm cho đến khi hết thời gian 60 giây.
Vấn đề là máy chủ không phản hồi và nhiều khách hàng không được phục vụ.
Tôi đã thực hiện một thử nghiệm đơn giản: tải xuống tệp XML từ máy chủ bằng Internet Explorer 8.0 Quá trình tải xuống kết thúc sau một phần giây. Nhưng sau đó tôi thấy rằng kết nối TCP / IP đang bị treo ở trạng thái TIME_OUT trong 60 giây.
Có cách nào để thoát khỏi TIME_OUT chờ đợi hoặc làm cho nó ít hơn để giải phóng ổ cắm cho các kết nối mới không?
Tôi hiểu tại sao kết nối TCP / IP vào trạng thái TIME_OUT, nhưng tôi không hiểu tại sao Internet Explorer không đóng kết nối sau khi quá trình tải xuống tệp XML kết thúc.
Các chi tiết.
Máy chủ của chúng tôi chạy dịch vụ web được viết bằng Perl (mod-perl). Dịch vụ cung cấp dữ liệu thời tiết cho khách hàng. Client là một ứng dụng Flash (thực ra là điều khiển Flash ActiveX được nhúng trong ứng dụng Windows).
HĐH: Ubuntu
Tùy chọn "Keep Alive" của Apache được đặt thành 0
KeepAlive on|off
. KeepAlive 0
là cú pháp Apache 1.1; Tôi giả sử bạn không sử dụng nó.