Il nostro server è sovraccarico di sessioni TCP / IP, ne abbiamo 1200-1500. La maggior parte di essi è sospesa nello stato TIME_OUT. Si scopre che una connessione nello stato TIME_OUT occupa un socket fino a quando è trascorso il timeout di 60 secondi.
Il problema è che il server non risponde e molti client non vengono serviti.
Ho fatto un semplice test: scarica un file XML dal server con Internet Explorer 8.0 Il download termina in una frazione di secondo. Ma poi vedo che la connessione TCP / IP si blocca nello stato TIME_OUT per 60 secondi.
Esiste un modo per sbarazzarsi di TIME_OUT in attesa o rendere meno per liberare il socket per le nuove connessioni?
Comprendo perché la connessione TCP / IP entra nello stato TIME_OUT, ma non capisco perché Internet Explorer non chiuda la connessione al termine del download del file XML.
I dettagli.
Il nostro server esegue un servizio Web scritto in Perl (mod-perl). Il servizio fornisce dati meteorologici ai clienti. Il client è un'applicazione Flash (in realtà il controllo ActiveX Flash incorporato nell'applicazione Windows).
Sistema operativo: Ubuntu
L'opzione "Keep Alive" di Apache è impostata su 0
KeepAlive on|off
. KeepAlive 0
è la sintassi di Apache 1.1; Presumo che tu non lo stia usando.