Nuestro servidor está sobrecargado con sesiones TCP / IP, tenemos 1200 - 1500 de ellas. La mayoría de ellos están suspendidos en el estado TIME_OUT. Resulta que una conexión en estado TIME_OUT ocupa un zócalo hasta que transcurran 60 segundos de tiempo de espera.
El problema es que el servidor no responde y muchos clientes no reciben servicio.
He realizado una prueba simple: descargue un archivo XML del servidor con Internet Explorer 8.0 La descarga finaliza en una fracción de segundo. Pero luego veo que la conexión TCP / IP se cuelga en el estado TIME_OUT durante 60 segundos.
¿Hay alguna forma de deshacerse de TIME_OUT esperando o hacer menos para liberar el socket para nuevas conexiones?
Entiendo por qué la conexión TCP / IP entra en el estado TIME_OUT, pero no entiendo por qué Internet Explorer no cierra la conexión una vez que finaliza la descarga del archivo XML.
Los detalles.
Nuestro servidor ejecuta un servicio web escrito en Perl (mod-perl). El servicio proporciona datos meteorológicos a los clientes. El cliente es una aplicación Flash (en realidad control Flash ActiveX integrado en la aplicación de Windows).
SO: Ubuntu
La opción Apache "Keep Alive" está establecida en 0
KeepAlive on|off
. KeepAlive 0
es la sintaxis de Apache 1.1; Supongo que no estás usando eso.