tuning tcp avanzato (timeout)
Inviato: ven 3 apr 2015, 14:58
Ho un sito che non mi funziona correttamente quando impiega parecchio nella elaborazione dei dati. Spiego che significa.
Per fare il test ho fatto in modo che lo script impieghi molto tempo ad elaborare i dati da restituire (pagina piccola, non più di 4K); superiore ad un minuto.
Punto con il browser e rimane lì in wait e non mostra niente nemmeno se aspetto diversi minuti.
Il server è redhat, il client è sia slackware sia windows seven, testati firefox e seamonkey.
Il server l'ho testato sia con tomcat che con apache.
Ho messo un netstat continuo e un tcpdump e quello che viene fuori è che per i primi 30 secondi (sempre 30) la connessione è in ESTABLISHED. Senza trasferire niente se non dei tcp keep-alive
Poi parte un FIN-ACK e la connessione va in CLOSE_WAIT.
Rimane in questo stato per 48 secondi, finchè non parte un RST della connessione ed immediatamente viene trasferita l'intera pagina dal server al client e poi la connessione si chiude definitivamente.
Ma ormai firefox ha "mollato" (i dati vengono prelevati e presentati con ajax e c'è una barra di scorrimento che si ferma quando passa da ESTABLISHED a CLOSE_WAIT), e quindi la pagina non viene presentata.
Non ho evidenza del codice javascript che avvia il caricamento della pagina (non l'ho fatto io ed è molto complesso da debuggare), ma volevo capire se posso sistemare la faccenda agendo su qualche parametro tcp in modo tale da aumentare quella finestra dei 30 secondi.
Qualcuno ci capisce qualcosa?
Per fare il test ho fatto in modo che lo script impieghi molto tempo ad elaborare i dati da restituire (pagina piccola, non più di 4K); superiore ad un minuto.
Punto con il browser e rimane lì in wait e non mostra niente nemmeno se aspetto diversi minuti.
Il server è redhat, il client è sia slackware sia windows seven, testati firefox e seamonkey.
Il server l'ho testato sia con tomcat che con apache.
Ho messo un netstat continuo e un tcpdump e quello che viene fuori è che per i primi 30 secondi (sempre 30) la connessione è in ESTABLISHED. Senza trasferire niente se non dei tcp keep-alive
Poi parte un FIN-ACK e la connessione va in CLOSE_WAIT.
Rimane in questo stato per 48 secondi, finchè non parte un RST della connessione ed immediatamente viene trasferita l'intera pagina dal server al client e poi la connessione si chiude definitivamente.
Ma ormai firefox ha "mollato" (i dati vengono prelevati e presentati con ajax e c'è una barra di scorrimento che si ferma quando passa da ESTABLISHED a CLOSE_WAIT), e quindi la pagina non viene presentata.
Non ho evidenza del codice javascript che avvia il caricamento della pagina (non l'ho fatto io ed è molto complesso da debuggare), ma volevo capire se posso sistemare la faccenda agendo su qualche parametro tcp in modo tale da aumentare quella finestra dei 30 secondi.
Qualcuno ci capisce qualcosa?