THE LIVORNOGATE TEARDOWN
Risolvere un problema di latenza tra BBox e IM
PROBLEMA
• Nell’installazione nella raffineria di Livorno Palladio Web (interfaccia web di IM basata su BBox) è inutilizzabile per la lentezza.
• Molti secondi per aprire un solo nodo dell’albero.
SCENARIO LIVORNO
Server IM ENSV1ILC
Server BBox ENSV1JXA
Stessa sottorete
Ping < 1ms
1: UNIONE DI INVOCAZIONI• Molte invocazioni REST da BBox a IM sono state
accorpate.0.19.7 0.20.2
Invocazioni 705 10
Tempo totale 12700 ms 178 ms
• Si passa da “inutilizzabile” a “fastidiosamente lento”.
2: RIMANE UNA STRANA LATENZA
BBox IM8: GET /
9: HTTP Headers + ACK di 8
10: ACK di 9
11: HTTP Json + ACK di 10
208 ms
41 ms
0.4 ms
LATENZA SÌ - LATENZA NO
Installazione IM BBox Latenza?
Livorno Windows 2003
Windows 2008 SÌ
Sannazzaro Windows 2003 Ubuntu Linux NO
Distro Windows 7 Pro
OSX Mavericks NO
NAGEL’S ALGORITHM
• Regola TCP in lato invio per inviare pacchetti più grossi.
• Invia solo quando l’applicazione inviante dà abbastanza dati (per un pacchetto intero), oppure
• quando il ricevente ha inviato tutti gli ACK.
TCP DELAYED ACKNOWLEDGE
• Regola TCP in lato ricezione per inviare meno pacchetti inutili.
• Non inviare subito l’ACK di un pacchetto.
• Aspettare di avere dei dati di risposta dall’applicazione ricevente per unire dati e ACK, oppure
• aspettare un altro pacchetto e mandare l’ACK di ambedue.
• Se non succede niente, aspetta un certo timeout, poi invia l’ACK.
Windows
200 ms
ANALISI DELLA LATENZABBox IM
8: GET /
9: HTTP Headers + ACK di 8
10: ACK di 9
11: HTTP Json + ACK di 10
Non invia 11 per via di Nagel (11 è
troppo piccolo e IM non riceve l’ACK di
9).
Non invia l’ACK di 9 per via del delay
(IM non invia nient’altro e BBox non ha niente da
dire).
SOLUZIONE
• Cambiate le impostazioni nel registro di windows per disabilitare TCP Delayed Acknowledgment.
• Effetti collaterali: diminuzione della banda nel trasferimento di file.
Top Related