L'algoritmo di copia dei file (Ubuntu) Linux è migliore di Windows 7?


13

La copia di Windows è un vero casino sin da Windows Vista. Anche Microsoft afferma di aver migliorato le prestazioni, dal punto di vista dell'utente, non è del tutto visibile. Anche con un singolo file la finestra di copia appare troppo tempo per 'Calcolare' e quindi terminare la copia (anche dopo il completamento al 100% alcune volte la finestra di dialogo rimane attiva).

Allo stesso tempo, stavo eseguendo il backup di alcuni file in Ubuntu Linux. Ho sentito che è davvero veloce. Potrebbe essere una sensazione causata da aggiornamenti dell'interfaccia utente più veloci.

Ho letto un post informativo di Jeff Atwood qualche anno fa sulla copia di file di Windows . ma quali sono le mie domande specifiche

  • (Ubuntu) Le prestazioni dei file Linux sono migliori di Windows-7?
  • Entrambi gli algoritmi, Windows e Linux utilizzano più thread e meccanismi di pipeline per migliorare la velocità? Se sì, quale è meglio?

3
In Windows utilizzare xcopyo anche robocopy. Molto meglio. Ad esempio, con quest'ultimo è possibile effettuare due passaggi, in primo luogo per creare tutte le directory ma non copiare alcun file, e in secondo luogo per copiare i file effettivi, senza causare frammentazione sulla destinazione.
Kerrek SB,

1
Oppure RichCopy ( blogs.technet.com/b/ken e download )
vedere il

Dipende anche dal filesystem - il tuo sistema presumibilmente usa qualcosa di simile ext3/4, che è in competizione con NTFS qui. Potresti anche provare reiserfse xfs- entrambi ottimizzati per operazioni veloci con file di piccole dimensioni.
nuovo123456,

@KerrekSB, per favore fai una risposta al tuo commento così posso votarlo. (Ho fatto solo +1 sul commento, ma sai cosa intendo.) Questa è la risposta.
CarlF,

Va notato (anche se 8 anni dopo!) Che Robocopy / CREATE, sebbene molto utile per replicare una struttura di directory completa con file vuoti, non impedisce di per sé la frammentazione dei file sulla destinazione. La struttura viene creata nella MFT, ma i contenuti dei file possono essere registrati ovunque. Normalmente anche in un passaggio se Robocopy esegue il mono-thread e copia un file alla volta, non dovrebbe esserci alcuna frammentazione (e eseguirlo multi-thread è una cattiva idea in quanto riduce gravemente le prestazioni su una copia da HDD a HDD, poiché la trasmissione meccanica deve "macinare" molto di più).
GabrielB,

Risposte:


6

Lo standard copyincorporato in Windows non è molto buono, ma Windows viene fornito con due comandi avanzati che sono molto più efficienti: xcopye robocopy. Soprattutto quando è necessario il pieno controllo delle funzionalità avanzate del filesystem come ACL o flussi di dati alternativi, robocopyè lo strumento preferito.

Ad esempio, se si sta copiando una struttura di directory di grandi dimensioni, è possibile che la destinazione non sia frammentata . L'invocazione standard di robocopyè già abbastanza buona in questo, ma poiché le voci della directory vengono aggiornate man mano che vengono create le sottodirectory, è comunque possibile ottenere directory frammentate. Per evitare ciò, è possibile eseguire robocopydue passaggi, il primo dei quali crea solo la struttura della directory di destinazione senza copiare alcun contenuto del file e il secondo per copiare effettivamente i corpi dei file.

Complessivamente, robocopyè molto efficiente e pienamente consapevole delle funzionalità NTFS.


NTFS è più efficiente di ext3 / 4?
Sarat,

In che modo un robocopy a due passaggi ci aiuta a ridurre la frammentazione, poiché il contenuto reale verrà copiato in seguito. L'allocazione del disco è interamente controllata dal file manager no?
Sarat,

Sto facendo alcuni trucchi come usare Beyond Compare per copiare i file. Vale a dire che posso eseguire più operazioni di copia per massimizzare l'utilizzo della larghezza di banda. Ma non sono sicuro di quanto sarà frammentato
sarat,

2
@Sarath: riguardo alla frammentazione: le voci della directory crescono man mano che nuovi file e sottodirectory vengono aggiunti alla directory. Se semplicemente crei la directory in modo ingenuo e inizi a inserire i file, alla fine il record della directory originale sarà troppo piccolo e deve essere esteso, ma ora non c'è spazio perché hai già i dati del file che lo seguono. Con l' /CREATEopzione, vengono creati file e sottodirectory vuoti, che non occupano spazio e consentono quindi di scrivere le voci della directory in modo contiguo.
Kerrek SB,

1
@Sarath: Per quanto riguarda il confronto tra NTFS ed Ext, non posso dire, perché NTFS non è aperto e la questione dell'efficienza è piuttosto vaga. NTFS è certamente un ottimo pezzo di tecnologia con un gran numero di funzionalità. Non c'è davvero scelta, però, perché utilizzerai NTFS in Windows ed Ext (o BTRFS) in Linux e basta.
Kerrek SB,

4

Parte della velocità che si vede da Ubuntu Linux è probabilmente la memorizzazione dei file nella cache. Per quanto ne so, la copia dei file in Linux non fa alcuno sforzo per ridurre al minimo l'uso della cache dei file.

Con Linux quando copi un file che è più piccolo di circa il 50% della tua RAM, l'intero file viene copiato nella cache dei file e quindi scritto sul disco quando il tempo lo consente. Questo sembra essere molto veloce, ma forza altri file più utili fuori dalla cache. Questi potrebbero essere file di cache web, e-mail, file di configurazione, file di caratteri, ecc.

Windows XP copiava anche senza riguardo per la cache dei file. Ma in Windows Vista, Microsoft ha cambiato Explorer in modo che quando lo copia utilizza una quantità limitata di cache dei file . Ciò riduce l'impatto di copie di file di grandi dimensioni sul resto del sistema. Ma riduce anche la velocità di copie di file anche relativamente piccole alla velocità del disco rigido.


Sì Ubuntu utilizzando il meccanismo di memorizzazione nella cache dei file. Ho anche notato che la navigazione è leggermente lenta mentre la copia era in corso. Ho anche notato che la velocità è costantemente migliorata soprattutto durante la copia di un gran numero di file
sarat,

Penso che questa sia la risposta che affronta la domanda quasi completamente.
Nandakumar Edamana,

2

In Windows, usa Teracopy - risolverà il problema di stupidità generale che Explorer ha.

In Ubuntu, ho trovato la copia di file molto veloce.

Tuttavia, la finestra di dialogo "Operazione file" non scompare quando si utilizzano unità rimovibili. Se si tenta di espellere l'unità in modo sicuro subito dopo la scomparsa della finestra di dialogo, verrà visualizzato un messaggio di errore. I dati arrivano comunque.

Aggiornamento: le operazioni sui file di Windows sono lente probabilmente di tutta l'integrazione con i servizi e il registro. Nautilus (in Gnome) è solo un semplice processo immagino o almeno non ha il carico / interruzioni che Explorer ha.


Risolvi la stupidità aggiungendo un'altra GUI che deve rimanere aperta :) In Ubuntu, la mia esperienza è che puoi chiudere la finestra di dialogo copia / spostare e andrà nella barra delle applicazioni, mostrando una notifica quando hai finito. Non sono sicuro di come lo faccia Natty con Unity
vedi il

Teracopy si carica di Explorer. Non devi tenerlo aperto. Pertanto, Teracopy viene caricato in memoria senza alcuno sforzo da parte dell'utente e funziona in modo discreto. Ubuntu non ha bisogno di nulla del genere perché ha tutta quell'intelligenza integrata in Nautilus, ovvero "unisci" e "salta tutto".
BZ1,

+1: grazie per aver portato TeraCopy alla mia attenzione allora!
Sehe

Stavo usando uno strumento gratuito e open source chiamato fastcopy. [ ipmsg.org/tools/fastcopy.html.en]
sarat,

-1

Lo spostamento e la copia di file in Linux è naturalmente un'operazione rapida. Il motivo per cui è possibile spostare e copiare file così rapidamente è perché sia ​​l'origine che la destinazione si trovano nella stessa partizione. L'operazione deve solo cambiare gli inode. Lo spostamento di file tra diverse partizioni è ancora molto rapido (solo un minuto circa per un file da 1 concerto). In Windows, ci vogliono alcuni per spostare i file verso destinazioni nella stessa partizione perché la gestione dei file in Windows è disordinata. (Pensa alla frammentazione dei file e al modo in cui Windows formatta i dischi rigidi.)


Sono d'accordo che lo spostamento è piuttosto veloce all'interno delle partizioni. Ma la copia ha sempre voluto avere una data duplicata sul disco e creare nuovi inode. Inoltre, dubito che spostare i file tra le partizioni sia costoso perché si verifica un movimento fisico dei file. Correggimi se sbaglio.
Sarat,
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.