Наш сервер перегружен сессиями TCP / IP, у нас их 1200 - 1500. Большинство из них висят в состоянии TIME_OUT. Оказывается, что соединение в состоянии TIME_OUT занимает сокет, пока не истечет 60-секундный тайм-аут.
Проблема в том, что сервер перестает отвечать на запросы, а многие клиенты не обслуживаются.
Я сделал простой тест: загрузите файл XML с сервера с помощью Internet Explorer 8.0. Загрузка заканчивается за доли секунды. Но потом я вижу, что соединение TCP / IP висит в состоянии TIME_OUT в течение 60 секунд.
Есть ли способ избавиться от ожидания TIME_OUT или сделать его меньше, чтобы освободить сокет для новых соединений?
Я понимаю, почему соединение TCP / IP переходит в состояние TIME_OUT, но я не понимаю, почему Internet Explorer не закрывает соединение после окончания загрузки файла XML.
Детали.
На нашем сервере работает веб-сервис, написанный на Perl (mod-perl). Сервис предоставляет данные о погоде клиентам. Клиент - это приложение Flash (фактически элемент управления Flash ActiveX, встроенный в приложение Windows).
ОС: Ubuntu
Параметр Apache "Keep Alive" установлен на 0
KeepAlive on|off
. KeepAlive 0
является синтаксисом Apache 1.1; Я полагаю, вы не используете это.