Unser Server ist mit TCP / IP-Sitzungen überlastet, wir haben 1200 - 1500 davon. Die meisten von ihnen hängen im Status TIME_OUT. Es stellt sich heraus, dass eine Verbindung im Status TIME_OUT einen Socket belegt, bis eine Zeitüberschreitung von 60 Sekunden verstrichen ist.
Das Problem ist, dass der Server nicht mehr reagiert und viele Clients nicht bedient werden.
Ich habe einen einfachen Test durchgeführt: Laden Sie eine XML-Datei mit Internet Explorer 8.0 vom Server herunter. Der Download ist in Sekundenbruchteilen abgeschlossen. Aber dann sehe ich, dass die TCP / IP-Verbindung 60 Sekunden lang im Status TIME_OUT hängt.
Gibt es eine Möglichkeit, das Warten auf TIME_OUT zu beseitigen oder den Socket für neue Verbindungen freizugeben?
Ich verstehe, warum die TCP / IP-Verbindung in den Status TIME_OUT wechselt, aber ich verstehe nicht, warum Internet Explorer die Verbindung nicht schließt, nachdem der Download der XML-Datei beendet ist.
Die Details.
Unser Server führt einen in Perl (mod-perl) geschriebenen Webdienst aus. Der Dienst stellt Kunden Wetterdaten zur Verfügung. Der Client ist eine Flash-Anwendung (tatsächlich ein in die Windows-Anwendung eingebettetes Flash ActiveX-Steuerelement).
Betriebssystem: Ubuntu
Die Apache-Option "Keep Alive" ist auf 0 gesetzt
KeepAlive on|off
. KeepAlive 0
ist die Apache 1.1-Syntax; Ich nehme an, Sie verwenden das nicht.