Risoluzione dei problemi relativi alle velocità della rete - The Age Old Enquiry


18

Sto cercando aiuto per quello che sono sicuro è una domanda secolare. Mi sono trovato in una situazione di desiderio di comprendere più chiaramente il throughput della rete, ma non riesco a trovare informazioni che lo rendono "clic"

Abbiamo alcuni server distribuiti geograficamente, che eseguono varie versioni di Windows. Supponendo che utilizziamo sempre un host (un desktop) come origine, quando copiamo i dati da quell'host su altri server in tutto il paese, vediamo una varianza elevata nella velocità. In alcuni casi, possiamo copiare costantemente i dati a 12 MB / s, in altri vediamo 0,8 MB / s. Va notato che, dopo aver testato 8 destinazioni, sembra che ci siano sempre 0,6-0,8 MB / so 11-12 MB / s. Nell'edificio di cui ci occupiamo principalmente, abbiamo una connessione OC-3 al nostro ISP.

So che ci sono molte variabili in gioco, ma credo che speravo che gli esperti qui potessero aiutare a rispondere ad alcune domande di base per rafforzare la mia comprensione.

1.) Per le macchine più vecchie, con Windows XP, server 2003, ecc., Con una scheda Ethernet da 100 Mbps e latenza tipica di 72 ms, 0,8 MB / s sembrano del tutto ragionevoli? O pensi che sia abbastanza lento da indicare un problema?

2.) La classica "velocità matematica più veloce" di "throughput = finestra TCP / latenza" è, nel nostro caso, calcolata a 0,8 MB / s (64Kb / 72 ms). La mia comprensione è che è un limite superiore; che non ti aspetteresti mai di raggiungere (a causa delle spese generali) e tanto meno di superare quella velocità. In alcuni casi, tuttavia, stiamo riscontrando velocità di 12,3 MB / s. Ci sono acceleratori Steelhead sparsi nella rete, potrebbero rappresentare una velocità di trasferimento così elevata?

3.) È stato suggerito che l'uso di SMB vs. SMB2 potrebbe spiegare le differenze di velocità. In effetti, come previsto, le acquisizioni di pacchetti mostrano che entrambe vengono utilizzate a seconda delle versioni del sistema operativo in uso, come ci aspetteremmo. Capisco cosa determina l'utilizzo o meno di SMB2, ma sono curioso di sapere che tipo di prestazioni ci si può aspettare con SMB2.

Il mio problema sembra semplicemente essere la mancanza di esperienza e, soprattutto, la prospettiva, in termini di velocità della rete ragionevoli e non ragionevoli. Qualcuno potrebbe aiutare a impartire contesto / prospettiva?


le differenze di velocità non sono solo SMB rispetto a SMB 2. ricorda che in Vista e sopra lo stack di rete non è più un componente aggiuntivo basato su * nix ed è integrato nel sistema operativo consentendo latenza e sovraccarico molto inferiori.
Jim B

Grazie Jim, è bello saperlo. Sì, lo so che ci sono un miliardo di variabili a monte e a valle a seconda di dove stai guardando nello stack OSI. Un collega ha offerto che forse la differenza di velocità potrebbe essere semplicemente una questione di "SMB vs. SMB2". Immagino di essere scettico sul fatto che SMB2 (.1) ci dia un aumento di 10 volte la velocità, ma ancora una volta, non sono abbastanza esperto nelle arti
aracne

Ottima domanda! Qualche aggiornamento su questo? E in seguito, una finestra di Windows XP che condivide ma non "ha effettuato l'accesso" trasferisce i file più velocemente di una con un utente connesso.
Chris K

Risposte:


4

La formula matematica a cui ti riferisci è in realtà il modo per determinare le impostazioni della dimensione della finestra di trasmissione più efficienti per TCP, non la larghezza di banda effettiva disponibile. TCP utilizza un meccanismo chiamato finestre scorrevoli che consente di regolare le velocità di trasmissione in base alle condizioni della rete. L'idea è che un trasmettitore TCP invierà sempre più dati senza richiedere un riconoscimento da parte del ricevitore. Se si verifica una perdita di dati, la quantità di dati inviati tra i riconoscimenti diminuisce, diminuendo così anche la larghezza di banda effettiva.

La formula in questione determina effettivamente il dimensionamento ideale di quella finestra di trasmissione TCP in base alla latenza e alla latenza di andata e ritorno tra una determinata coppia di host. L'idea è di avere una finestra dimensionata in modo tale che la quantità di dati "in volo" corrisponda a ciò che è noto come il prodotto di ritardo della larghezza di banda. Ad esempio, se si dispone di 50 megabit al secondo (6,25 megaBYTES) e una latenza di andata e ritorno media di 100 ms, si otterrebbero 6,25 * 0,1 = 625 kilobyte di dati. Questo sarebbe il valore che TCP dovrebbe negoziare (se configurato correttamente). Poiché le caratteristiche di latenza e larghezza di banda dei collegamenti variano, cambia anche la dimensione della finestra.

Ciò di cui hai bisogno è uno strumento di gestione della larghezza di banda come iperf (gratuito) in esecuzione sia sulla sorgente che sulle varie destinazioni. Questo dovrebbe darti un'idea dell'effettiva quantità di throughput possibile (indipendente da altre app) fornendo anche alcune informazioni sulla latenza. L'esecuzione di un ping esteso tra host fornirà anche un'idea generale delle caratteristiche di latenza. Quando disponi di questi dati avrai un'idea migliore di ciò che dovresti vedere per quanto riguarda la velocità effettiva.

A proposito: l'uso di qualsiasi tipo di ottimizzatore LAN spesso incorporerà la compressione dei dati, l'ottimizzazione TCP, la memorizzazione nella cache, ecc. Sebbene utile, può oscurare la natura dei collegamenti sottostanti. Una volta che hai un'idea della larghezza di banda / del ritardo grezzi (e della perdita di pacchetti, potenzialmente) puoi dare un'occhiata più da vicino per assicurarti che i vari host siano configurati per sfruttare adeguatamente la larghezza di banda disponibile.


Grazie per l'ottima informazione rnxrx. Le finestre scorrevoli utilizzate in TCP hanno molto senso. Nel nostro caso, dato che l'unico traffico di cui ci occupiamo è il TCP, quindi immagino che la mia domanda sia fortemente focalizzata sul TCP. Abbiamo utilizzato altri metodi di trasferimento dei dati (come repliweb) e abbiamo raggiunto una velocità di trasmissione molto più elevata (fino a 11 MB / s). Tuttavia, non ero a conoscenza del prodotto di ritardo della larghezza di banda, è fantastico saperlo!
Univ426,

2

Prova "ping -l 8092" o FTP o HTTP per verificare se si tratta di un problema SMB.

Prima di tutto: che media usi per connettere i computer? Cosa ci "100mpbs"? Ethernet? Non puoi usarlo per computer "distribuiti geograficamente", giusto?

In caso di router "VPN su Internet" tra i computer possono utilizzare collegamenti diversi: uno è veloce, l'altro no. Possono scegliere il collegamento in base a molti parametri.

Descrivi la tua rete.

Potrebbe trattarsi anche di un problema MTU: diversi collegamenti possono avere MTU diversi.


Grazie Llya. Ho aggiornato la domanda per rispondere alla tua. Questa è una normale rete Ethernet, con una scheda di rete a 100 Mbps nell'host di origine.
Univ426,

Josh, non riesco ancora a capire: ((Colleghi il tuo PC al server usando Ethernet 100BASE? Anche se usi 100BASE-LX10 (Ethernet su due fibre ottiche) non puoi connettere due computer "attraverso il paese": ha limite di distanza di circa 10 chilometri. E in caso di Ethernet usi switch (quale?) o colleghi direttamente i computer? E per favore dimmi della latenza: come hai ottenuto "72 ms"? come l'hai calcolata? Grazie
Ilya

Stiamo passando su una LAN locale all'interenet pubblico, a un datacenter e quindi al server su una rete Intranet aziendale. La latenza è stata determinata utilizzando il ping. Passiamo attraverso più switch come ci si aspetterebbe. Lo switch più vicino ha una velocità negoziata confermata con l'host di 100 Mbps. Spero che questo aiuti.
Univ426

1
nb - la larghezza di banda di cui ti preoccupi non è i 100 M della tua connessione LAN ma il collegamento più lento tra gli endpoint. Questo potrebbe essere il tuo collegamento WAN o qualche collegamento intermedio più lento.
rnxrx,

È un ottimo punto, aggiornerò la domanda, ma so che siamo collegati al nostro ISP tramite un OC-3. Devo immaginare che tutto a monte di almeno 100 Mbps, e so che l'infrastruttura dell'edificio è 100M o 1G fino a quella connessione.
Univ426,

2

Molti commenti e utenti hanno offerto ottimi consigli qui. Alcuni di loro hanno colpito abbastanza vicino a quello che stavo cercando, ma sono stato anche abbastanza fortunato da incontrare un veterano della rete della nostra azienda che ha contribuito a chiarire le cose. Ho pensato di pubblicare qui le mie scoperte / intese a beneficio di altri. Sentiti libero di correggermi se nulla di tutto questo sembra spento:

1.) Il throughput massimo di una singola sessione TCP con latenza di 72 ms e una finestra di 64 KB è di circa 0,8 MB / s, rendendo tale velocità ragionevole per le copie a thread singolo e singola sessione, come quelle che abbiamo eseguito con robocopy.

2.) Questa differenza di velocità sembra dipendere dall'efficacia del metodo di trasferimento. Nel nostro caso, stavamo usando Robocopy e Repliweb. Ho scoperto che robocopy utilizza una singola sessione TCP, mentre Repliweb può aprire più sessioni per inviare dati.

3.) La ricerca dal sito Web di Microsoft mostra che SMB2 ha un notevole miglioramento delle prestazioni rispetto a SMB1. Ci sono stati, tuttavia, problemi in alcuni casi nel modo in cui il sistema operativo negozia quale protocollo utilizzare, quindi si dovrebbe essere consapevoli sia di a.) Di quali casi SMB2 può essere usato, sia di b) se l'SMB2 viene effettivamente utilizzato o meno sulle acquisizioni di rete.

Attualmente, sembra che Wire-Shark possa determinare l'uso del protocollo SMB2.

Spero che questo possa essere d'aiuto. Ancora una volta, la mia comprensione è abbastanza rudimentale qui, sentiti libero di espandermi.


1
A parte i calcoli del ritardo della larghezza di banda, tenere presente che SMB2 migliora notevolmente le prestazioni su un collegamento a latenza più elevata, poiché non attende che il server riconosca una scrittura prima di trasferire più dati. Vediamo infatti 10x guadagni di throughput con SMBv2 sulle nostre connessioni WAN usando ROBOCOPY. Considera anche il thread / MT con robocopy se stai copiando molti file, per impostazione predefinita fa fino a 8 in parallelo.
rmalayter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.