Domanda

Perché le connessioni multiple dallo stesso host a raggiungere una maggiore velocità di connessioni multiple da diversi host?

Ho il sospetto che è qualcosa kernel-correlato (Linux), ma conferma di aiuterebbe molto.

Maggiori dettagli che ho 1 processo ricevente, chiamiamolo R. Si accetta connessioni in entrata e riceve i dati con select ().

Ho 3 processi mittente S1, S2, S3. Si collegano a R e inviare i dati ad un tasso fisso, cioè 200Mbit al secondo ciascuna.

Se S1, S2 e S3 sono sulla stessa macchina, ottengo risultati migliori che avendo ciascuno di loro su una macchina diversa. (R è in entrambi i casi su qualche altra macchina)

Esempio: R host0, S1, S2, S3 in host2, R riceve in 600Mbit / s

R su host0, S1 in host1, host2 S2, S3 sull'host3, R riceve in 480Mbit / s

Questo sembra contro-intuitivo per me, mi aspettavo il contrario in quanto nel secondo caso i mittenti non devono condividere la scheda di rete e il processore (Non che si aspettano processore o scheda di rete per essere i colli di bottiglia ...)

[I padroni di casa di cui sopra sono nodi di un cluster Linux con uno switch Gigabit full-duplex dedicato. Sono in esecuzione 2.6.24-24-generic (ultima Ubuntu credo)]

È stato utile?

Soluzione

Questo è probabilmente perché quando i mittenti sono tutti su una macchina, i pacchetti in uscita sono tutti ben messi in coda e inviati one-at-a-tempo (proprio in virtù del fatto che sono tutti passa attraverso un NIC).

Mentre nel caso più mittenti, due macchine spesso inviare pacchetti allo stesso tempo, ed è poi fino allo switch di rete a coda loro. Questo si manifesterà al TCP trasmittente come latenza nervoso -. Volte un pacchetto viene commutato direttamente al ricevitore, altre volte dovrà attendere per uno o due pacchetti da altri mittenti all'interno delle code interruttore

Mi aspetto che il jitter di latenza da solo sarebbe sufficiente a battere più di tanto fuori la larghezza di banda - ricordare che per sostenere 200Mbps con le finestre TCP standard, è necessario un-tempo di roundtrip minimo di 2,6 ms, che è piuttosto stretto .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top