Notre serveur est surchargé de sessions TCP / IP, nous en avons 1200 - 1500. La plupart d'entre eux sont suspendus dans l'état TIME_OUT. Il s'avère qu'une connexion dans l'état TIME_OUT occupe un socket jusqu'à l'expiration du délai de 60 secondes.
Le problème est que le serveur ne répond plus et que de nombreux clients ne sont pas servis.
J'ai fait un test simple: téléchargez un fichier XML depuis le serveur avec Internet Explorer 8.0 Le téléchargement se termine en une fraction de seconde. Mais je vois que la connexion TCP / IP est suspendue dans l'état TIME_OUT pendant 60 secondes.
Existe-t-il un moyen de se débarrasser de TIME_OUT en attente ou de réduire le temps de libérer le socket pour de nouvelles connexions?
Je comprends pourquoi la connexion TCP / IP entre dans l'état TIME_OUT, mais je ne comprends pas pourquoi Internet Explorer ne ferme pas la connexion une fois le téléchargement du fichier XML terminé.
Les détails.
Notre serveur exécute un service Web écrit en Perl (mod-perl). Le service fournit des données météorologiques aux clients. Le client est une application Flash (en fait un contrôle Flash ActiveX intégré à l'application Windows).
OS: Ubuntu
L'option Apache "Keep Alive" est définie sur 0
KeepAlive on|off
. KeepAlive 0
est la syntaxe Apache 1.1; Je suppose que vous n'utilisez pas cela.