Questo sembra correlato a questo , ma è in qualche modo diverso.
Esiste questo collegamento WAN tra due siti aziendali e dobbiamo trasferire un singolo file molto grande (dump Oracle, ~ 160 GB).
Abbiamo una larghezza di banda completa di 100 Mbps (testata), ma sembra che una singola connessione TCP non riesca a massimizzarla a causa del funzionamento di TCP (ACK, ecc.). Abbiamo testato il collegamento con iperf e i risultati cambiano notevolmente quando si aumentano le dimensioni della finestra TCP: con le impostazioni di base otteniamo un throughput di ~ 5 Mbps, con un WS più grande possiamo ottenere fino a ~ 45 Mbps, ma non oltre. La latenza di rete è di circa 10 ms.
Per curiosità, abbiamo eseguito iperf utilizzando più di una singola connessione e abbiamo scoperto che, eseguendone quattro, avrebbero effettivamente raggiunto una velocità di ~ 25 Mbps ciascuno, riempiendo tutta la larghezza di banda disponibile; quindi la chiave sembra essere nell'esecuzione di più trasferimenti simultanei.
Con FTP, le cose peggiorano: anche con impostazioni TCP ottimizzate (dimensioni della finestra elevate, MTU massimo, ecc.) Non possiamo ottenere più di 20 Mbps su un singolo trasferimento. Abbiamo provato a inviare FTP alcuni file di grandi dimensioni contemporaneamente, e in effetti le cose sono andate molto meglio rispetto al trasferimento di un singolo file; ma poi il colpevole divenne I / O del disco, perché la lettura e la scrittura di quattro file di grandi dimensioni dallo stesso collo di bottiglia del disco molto presto; inoltre, non sembriamo essere in grado di suddividere quel singolo file di grandi dimensioni in file più piccoli e quindi di fonderlo nuovamente, almeno non in tempi accettabili (ovviamente non possiamo passare a ricollegare / unire il file un tempo paragonabile a quello di trasferendolo).
La soluzione ideale qui sarebbe uno strumento multithread in grado di trasferire vari blocchi del file contemporaneamente; una specie di programmi peer-to-peer come eMule o BitTorrent già lo fanno, ma da una singola fonte a una singola destinazione. Idealmente, lo strumento ci consentirebbe di scegliere quante connessioni parallele usare e ovviamente ottimizzare l'I / O del disco per non saltare (troppo) follemente tra le varie sezioni del file.
Qualcuno sa di un tale strumento?
Oppure, qualcuno può suggerire una soluzione migliore e / o qualcosa che non abbiamo già provato?
PS Abbiamo già pensato di eseguire il backup su nastro / disco e inviarlo fisicamente a destinazione; sarebbe la nostra misura estrema se la WAN non la tagliasse, ma, come ha detto Tanenbaum, "Non sottovalutare mai la larghezza di banda di una station wagon piena di nastri che sfrecciano lungo l'autostrada".