Con la connessione gigabit, Teracopy esegue 31 MB / s, ma Windows 8 lo fa a ~ 109 MB al secondo?


13

Oggi ho avuto il mio primo assaggio del networking Gigabit, tra il mio MacMini 2011 e il desktop Windows 8 Pro collegato tramite Cat.5e a Linksys WRT320N (con dd-WRT sportivo).

Dopo essermi accertato che la velocità della linea su entrambi i sistemi mostrasse 1 Gbps, ho proceduto alla copia di un MP4 da 2,4 GB dal Mini al desktop Win 8 (condivisione SMB). Sebbene soddisfatto dei 30-34 MB / s mostrati da Teracopy (che era un passo in avanti corretto per me da 10 MB / s), ero ancora curioso di sapere questa enorme differenza nella velocità pubblicizzata e reale.

2 ore di Google mi hanno fatto credere che ci fossero altri fattori che hanno portato a una minore velocità, essendo la PMI uno. Quindi, solo per il gusto di farlo, ho controllato entrambi i sistemi e ho indovinato ciò che ha mostrato: circa 875 Mbps su entrambi i sistemi!

Mi sono quindi imbattuto in questo piccolo pezzo di informazione dopo il quale ho spento Teracopy e copiato lo stesso file tramite la normale copiatrice di Windows 8. 109 MB / s. Cervelli fusi :)

Cosa sta causando esattamente questo? E posso abilitare tali velocità tramite Teracopy? Ho davvero scavato le funzionalità extra che Teracopy ha, sicuramente mi mancheranno ora: D


2
La prima cosa che mi viene in mente è: come hai copiato tramite teracopy? A / da una lettera di unità? (che serializza le cose ed è più lento) o verso un percorso UNC?
Hennes,

Ho appena condiviso le cartelle (clic destro> condivisione> Condividi questa cartella o equivalente) su entrambi i computer. Accedo al computer in rete semplicemente aprendo "Rete" dal riquadro a sinistra in Explorer e in OS X, selezionando il nome del computer in rete dal riquadro a sinistra in Finder. Per dirla semplicemente, accedo ai file del Mac da Explorer in Win 8, li copio usando il comando di base Ctrl + C e li incollo localmente sul desktop del PC.
Gaurang,

Quali azionamenti usi? Due SSD? Quei numeri di Windows 8 mi sembrano strani.
Apache,

Risposte:


16

Con la connessione gigabit, Teracopy esegue 31 MB / s, ma Windows 8 lo fa a ~ 109 MB al secondo?

Cosa sta causando esattamente questo? E posso abilitare tali velocità tramite Teracopy? Ho davvero scavato le funzionalità extra che Teracopy ha, sicuramente mi mancheranno ora: D

Due parole: verifica e cache

Spiegazione tecnica

Questa è la procedura generale per copiare un file con Windows Explorer:

  1. Leggi un blocco di dati dall'unità di origine in memoria
  2. Invia il pezzo attraverso il sistema (s)
  3. Scrivi il blocco nell'unità di destinazione
  4. Se non ancora fatto, tornare al passaggio 1

Questo sembra semplice e abbastanza breve. Con questo algoritmo di trasferimento, ogni byte del file viene elaborato solo due volte: una lettura, una scrittura.

Inoltre, Windows utilizza la memoria (così come l'unità stessa) per memorizzare nella cache alcuni dati. Quindi, invece di attendere che il blocco precedente finisca di essere scritto, e quindi leggere il blocco successivo, è possibile leggere un nuovo blocco mentre il precedente è ancora in fase di scrittura. Ovviamente questo non può durare per sempre, ma Windows può utilizzare tutta la memoria libera rimanente come buffer temporaneo per archiviare la maggior parte, se non tutto il file che viene letto in memoria.

È possibile visualizzare la cache in azione copiando un file di grandi dimensioni o una cartella contenente molti file da un'unità a un'altra, quindi confrontando immediatamente i due. Il confronto sarà molto più veloce a quel punto rispetto a quando lo farai in seguito perché i file sono ancora in memoria, quindi non li sta effettivamente leggendo dalle unità.

Poiché la memoria è molto veloce e le velocità di lettura tendono ad essere un po 'più veloci delle velocità di scrittura, la velocità di trasferimento finale finisce per essere limitata solo dalla velocità di scrittura dell'unità di destinazione.

Teracopy può fare due cose che possono rallentare un trasferimento di file che Explorer non fa:

  • Rinuncia alla cache e leggi direttamente dall'unità

  • Verifica che la destinazione sia stata scritta correttamente

A differenza di Explorer che verifica solo gli errori di base durante il trasferimento, Teracopy può effettivamente verificare che i dati siano stati scritti correttamente sull'unità di destinazione al fine di prevenire il danneggiamento dei dati che potrebbe verificarsi a causa di problemi nel supporto di trasferimento (rete / cavo dell'unità / ecc. ) o l'unità stessa (settore danneggiato, ecc.) Ciò significa che deve leggere il file dalla destinazione per confrontarlo con l'originale.

A seconda dell'algoritmo utilizzato e delle dimensioni del file, la verifica può essere ottimizzata a partire da (ma non meno di) tre operazioni di unità per ciascun file / blocco di file rispetto alle due di Explorer: leggere il file dall'origine, scrivere il file alla destinazione e leggere il file dalla destinazione.

Guarda cosa succede quando copi un file con Teracopy (con un algoritmo ottimizzato per HDD):

  1. Leggi un pezzo dall'unità di origine
  2. Hash il pezzo letto dall'unità di origine
  3. Invia il pezzo attraverso il sistema (s)
  4. Scrivilo sull'unità di destinazione
  5. Cancella cache
  6. Leggi il pezzo indietro dall'unità di destinazione
  7. Hash il pezzo dall'unità di destinazione
  8. Confronta gli hash
  9. Determina il passaggio successivo
    • Se gli hash non corrispondono, fornisci l'errore e richiedi l'intervento dell'utente
    • Se gli hash corrispondono e non sono finiti, tornare al passaggio 1

Il problema è che se si memorizzano nella cache i file durante il trasferimento, il confronto diventa inutile perché non si stanno leggendo i dati effettivi sull'unità di destinazione, si sta leggendo la copia memorizzata nella cache dalla sorgente. Pertanto, per verificare correttamente, è necessario cancellare la cache. Questo può essere fatto dopo ogni lettura e scrittura (che è un'operazione aggiuntiva che finirebbe per essere eseguita innumerevoli volte per file di qualsiasi dimensione significativa) o solo una volta dopo che l'intero file è stato trasferito.

Secondo lo screenshot seguente, TeraCopy esegue la verifica dopo il trasferimento dei file, non durante. Ciò significa che utilizza invece questo algoritmo di trasferimento ottimizzato per CPU / RAM:

  1. Leggi un pezzo dall'unità di origine
  2. Invia il pezzo attraverso il sistema (s)
  3. Scrivilo sull'unità di destinazione
  4. Se non ancora fatto, tornare al passaggio 1
  5. Copia terminata, quindi cancella le cache ed è in fase di verifica
  6. Leggi un pezzo dall'unità di origine
  7. Hash il pezzo dall'unità di destinazione
  8. Leggi un pezzo dall'unità di destinazione
  9. Hash il pezzo dall'unità di destinazione
  10. Confronta gli hash
  11. Determina il passaggio successivo
    • Se gli hash non corrispondono, fornisci l'errore e richiedi l'intervento dell'utente
    • Se gli hash corrispondono e non sono finiti, tornare al passaggio 6

Mentre questo algoritmo mette a dura prova un po 'meno la CPU e la RAM, pone anche molta più tensione sulle unità perché ora ogni file deve essere elaborato quattro volte: leggi l'intero file dalla sorgente, scrivilo alla destinazione , quindi leggilo di nuovo dalla fonte e di nuovo dalla destinazione.

(Se TeraCopy fosse ottimizzato per i trasferimenti di rete, allora potrebbe evitare di inviare l'intero file una seconda volta per la verifica e inviare solo gli hash che sono molto più piccoli, ma che attualmente non sembra essere il caso, ei driver di rete vengono trattati allo stesso modo come unità locale, quindi in realtà rilegge la fonte.)

Per impostazione predefinita, TeraCopy non verifica né utilizza la cache. Non verificare accelererebbe il trasferimento (o più precisamente, non lo rallenterebbe ), mentre non usare la cache lo rallenterebbe.

Applicazione

Per determinare i risultati della tua velocità specifica, dovresti controllare le tue impostazioni per vedere se le hai modificate. Quindi puoi provare ad approssimare il tipo di velocità che otterrai con le diverse impostazioni (tieni presente che probabilmente interagiranno, quindi non si tratta semplicemente di aggiungere o sottrarre).

Detto questo, facciamo un calcolo sommario usando i tuoi numeri:

  • Trasferimento file locale: 875 Mbps (ovvero velocità dell'unità)
  • Velocità di rete: 1 Gbps = 119,21 MBps
  • Copia tramite Esplora risorse: 109 Mbps
  • Copia tramite TeraCopy: 34 Mbps

Vediamo subito che il trasferimento di file di Explorer sta quasi massimizzando la velocità di trasmissione della rete. Un collegamento da 1 Gbps equivale a 1.000.000.000 di bit al secondo, che in unità binarie di byte è 119 Mbps. Explorer ha un clock di 109 Mbps e i restanti 10 Mbps (che in modo abbastanza divertente era il tuo massimo precedente :^Þ) possono essere facilmente spiegati per overhead, caricamento in background e frammentazione.

(Poiché la velocità di trasferimento è quasi uguale alla velocità della rete, possiamo supporre che il trasferimento dei file di Explorer sia a senso unico e che venga inviata una sola copia di ciascun file.) Explorer ottiene 110 Mbps per due accessi ai file per file.

Ora per TeraCopy. Sembra che TeraCopy stia ottenendo quasi un terzo della velocità di Explorer.

A seconda che la sua finestra di dialogo delle preferenze indichi o meno con precisione l'algoritmo che utilizza, TeraCopy potrebbe effettivamente inviare l'intero file sorgente due volte in modo da poter controllare la copia. Immediatamente, questo dimezza il rendimento. Se la cache è attiva, anche quella riduce la velocità perché deve attendere il completamento di ogni scrittura prima di poter inviare un nuovo blocco. Se combinato con la verifica, può abbatterlo ancora di più.

La tua velocità di trasferimento di 34 Mbps sembra ragionevole se hai la verifica attivata e la memorizzazione nella cache. Se disattivi la verifica e la memorizzazione nella cache, dovresti ottenere quasi lo stesso di Explorer (potresti comunque ottenere un po 'meno o addirittura un po' di più a seconda di quanto sia diverso il codice di trasferimento file che TeraCopy utilizza da quello utilizzato da Explorer).

Se hai voglia di trasferire quasi 10 GB, puoi anche provare a modificare le impostazioni e ripetere il trasferimento per ciascuna delle quattro permutazioni e annotare le velocità che ottieni (per sicurezza, ordina in modo che la cache sia fuori tra le corse:) V+C+, V+C-, V-C+, V-C-.


Schermata della finestra di dialogo delle preferenze di TeraCopy con impostazioni predefinite


1
Secondo te, mi consiglia, se si utilizza un SSD per abilitare (controllare) la "Usa cache di scrittura del sistema" se si cerca la massima prestazione?
Zio Iroh,

1

Sospetterei che sia correlato al fatto che Windows 8 utilizza SMB v. 3 e dubito che teracopy sia compatibile con SMB v.3 e stia tornando di default a SMB 2. Solo un'ipotesi ...


0

Non posso darti una risposta al 100% al tuo problema, ma posso aggiungere altro che potrebbe aiutare.
La mia ragione per passare a Teracopy era dovuta al modo in cui Windows deve "calcolare" tutto prima di fare qualsiasi cosa e questo calcolo stesso a volte può bloccare l'intero processo. In altri post è stato accennato al fatto che il tipo di file da copiare era importante nella copia di Windows, non posso dirlo con certezza in Teracopy poiché non ho visto che è stato visualizzato. Ma i miei tentativi finora mi hanno lasciato con meno di quello che ottieni in ogni caso. Sto solo copiando i tipi di file generici, non i file multimediali (ad es. Foto / filmati).

I miei test sono passati da un NAS Seagate da 3 TB con accesso GB NIC su una rete da 100% GB a un sistema GB. Caso migliore, 14 Gbps. Windows si è spostato dal NAS al sistema HD ottenendo 12,4 GBps e impiegando un po 'più di tempo per avviarsi. Niente si avvicinava ai tuoi 30-34 Mbps e tanto meno qualcosa come 109 Mb / s.

Parte di ciò è sicuramente dovuta al controllo del flusso del NAS anche su una rete GB. Sarei estremamente felice se potessi ottenere 34 GB / s, più felice se potessi ottenere 109 GB / s. Se trovi una copiatrice di file più veloce, per favore pubblica! :)


1
Vorrei aggiungere che l'impostazione per l'utilizzo della cache di scrittura del sistema quando utilizzata sembra fare una differenza significativa nel completamento in tempo reale. Più veloce.
user1376156

Come stai ottenendo 14 Gbps sulla rete? Anche SATA III non supporta tali velocità.
Marzo Ho,

0

Questo mi ha aiutato con questo problema, tra le schede NIC del chipset della scheda madre Intel.

Il TOE (TCP Offload Engine) è stato introdotto su Windows nel 2003, con risultati orribili dalle schede di rete Broadcom utilizzate nella maggior parte dei server all'epoca che causavano il danneggiamento dei dati se si "scaricava" il checksum. Sembra che i fornitori di schede di rete non abbiano ancora ragione, e non è solo Broadcom. Lo scarico della rete è quasi sempre più lento e apparentemente anche più soggetto a errori rispetto a fare tutto nel software. Vorrei andare nelle impostazioni dell'adattatore e disabilitare tutto l'offload dell'hardware di qualsiasi tipo.


2
Se questa fosse la causa, tutto il traffico di rete TCP sarebbe lento. Non solo una rete di teracopie sì, una veloce copia di Explorer.
Hennes,

0

In precedenza avevo identico problema con i trasferimenti lenti tramite TeraCopy. Celeron J1800 con scheda LAN integrata Realtek Gigabit 8111C. Non ottenevo niente di più di 35-45 megabyte al secondo. Abbastanza frustrante!

Finì per essere un cattivo driver della scheda lan.

Finestre installate da zero con driver OEM. Inoltre ho fatto quanto segue:

In Gestione dispositivi / Scheda Lan / Impostazioni avanzate / Disabilita tutto tranne FLOW CONTROL.

In Funzionalità Windows, disabilita la compressione differenziale remota.

Ora la velocità media è tra 60-70 Mbps

inserisci qui la descrizione dell'immagine


-1

Ho anche fatto diversi test con Teracopy 2.3 final e Synology Diskstation. In effetti il ​​processo di copia è troppo lento. Ho copiato i file con una velocità media di circa 40 MB / s.

Il programma originale di copia dei file di Windows 8 è più veloce di Teracopy!

Ora sto provando Ultracopier, le mie velocità attuali sono di circa 80 MB / s, molto più veloci di Teracopy. Mi piace Teracopy, ma penso che Teracopy abbia un problema di copia in rete.

Poiché sto copiando molti file da un'unità di rete a un'altra, devo usare il programma di copia più veloce possibile, perché il processo di copia è sempre troppo lungo.


1
Stavo per provare Ultracopier ... E ho cercato su Google e wiki afferma che è un malware mascherato da sostituto del file di Windows Explorer ... ATTENZIONE! ATTENZIONE! "Ultracopier è un malware che si maschera da strumento per sostituire la funzionalità di copia dei file di Esplora risorse / Esplora file." en.wikipedia.org/wiki/Ultracopier

2
Ultracopier è un malware: non lo consiglio. ( en.wikipedia.org/wiki/Ultracopier )
Art Gertner

4
Se in realtà prendi il tempo di leggere l' articolo collegato da quella pagina wiki , viene rivelato: "Per finanziarlo, ho messo un minatore Bitcoin (che utilizza la GPU al 100%), o versione senza di esso, ma con un piccolo annuncio in le versioni gratuite ". Ma è un punto valido sul fatto che il software non lo dichiari chiaramente sul suo sito di download.
Mokubai
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.