O algoritmo de cópia de arquivo (Ubuntu) Linux é melhor que o Windows 7?

13

A cópia do Windows é uma verdadeira bagunça desde o Windows Vista. Até a Microsoft afirma que melhorou o desempenho, do ponto de vista do usuário, não é bem visível. Mesmo com um único arquivo, a janela de cópia aparece com muito tempo para 'Calcular' e depois finalizar a cópia (mesmo após 100% de conclusão algumas vezes a caixa de diálogo permanece ativa).

Ao mesmo tempo, eu estava fazendo backup de alguns arquivos no Ubuntu Linux. Eu senti que é muito rápido. Pode ser um sentimento causado por atualizações mais rápidas da interface do usuário.

Li um post informativo de Jeff Atwood alguns anos atrás, sobre a cópia de arquivos do Windows . mas quais são minhas perguntas específicas

  • O desempenho do arquivo Linux (Ubuntu) é melhor que o Windows 7?
  • Ambos os algoritmos, Windows e Linux, estão usando vários threads e mecanismo de pipelining para melhorar a velocidade? Se sim, qual é o melhor?
sarat
fonte
3
No Windows xcopy, use ou mesmo robocopy. Muito melhor. Por exemplo, com o último você pode fazer duas passagens, primeiro para criar todos os diretórios, mas não copiar nenhum arquivo, e segundo para copiar os arquivos reais, sem causar fragmentação no destino.
Kerrek SB
1
Ou RichCopy ( blogs.technet.com/b/ken e download )
consulte
Depende também do sistema de arquivos - seu sistema provavelmente usando algo como ext3/4, que está competindo com o NTFS aqui. Você também pode tentar reiserfse xfs- ambos otimizados para operações rápidas com arquivos pequenos.
new123456
@KerrekSB, por favor, responda seu comentário para que eu possa votá-lo novamente. (Fiz apenas +1 no comentário, mas você entende o que quero dizer.) Essa é a resposta.
CarlF
Deve-se notar (embora 8 anos depois!) Que Robocopy / CREATE, embora seja muito útil para replicar uma estrutura de diretório completa com arquivos vazios, por si só não impede a fragmentação de arquivos no destino. A estrutura é criada na MFT, mas o conteúdo dos arquivos pode ser gravado em qualquer lugar. Normalmente, mesmo em uma passagem, se o Robocopy estiver executando um thread mono e copie um arquivo por vez, não deverá haver fragmentação de qualquer maneira (e executá-lo com vários threads é uma má ideia, pois reduz severamente o desempenho de uma cópia de HDD para HDD, desde que o acionamento mecânico tenha que "triturar" muito mais).
GabrielB 26/05/19

Respostas:

6

O padrão copyembutido no Windows não é muito bom, mas o Windows vem com dois comandos avançados que são muito mais eficientes: xcopye robocopy. Especialmente quando você precisa de controle total sobre os recursos avançados do sistema de arquivos, como ACLs ou fluxos de dados alternativos, robocopyé a ferramenta preferida.

Como exemplo, se você estiver copiando uma grande estrutura de diretórios, poderá desejar que o destino não seja fragmentado . A chamada padrão de robocopyjá é muito boa nisso, mas como as entradas do diretório são atualizadas à medida que os subdiretórios são criados, você ainda pode obter diretórios fragmentados. Para evitar isso, você pode executar robocopyem duas passagens, a primeira das quais apenas cria a estrutura de diretórios de destino sem copiar nenhum conteúdo do arquivo e a segunda para realmente copiar os corpos dos arquivos.

No total, robocopyé muito eficiente e totalmente ciente dos recursos do NTFS.

Kerrek SB
fonte
O NTFS é melhor eficiente que o ext3 / 4?
sarat
Como uma robocópia de duas passagens nos ajuda a reduzir a fragmentação, pois o conteúdo real será copiado mais tarde. A alocação de disco é totalmente controlada pelo gerenciador de arquivos não?
sarat
Estou fazendo alguns truques, como usar o Beyond Compare para copiar arquivos. Ou seja, eu posso executar várias operações de cópia para maximizar o uso da largura de banda. Mas não estou certo de quão fragmentada será
sarat
2
@ Sarath: Quanto à fragmentação: As entradas do diretório aumentam à medida que novos arquivos e subdiretórios são adicionados ao diretório. Se você criar o diretório de maneira ingênua e começar a colocar os arquivos, eventualmente o registro do diretório original será muito pequeno e precisará ser estendido, mas agora não há espaço porque você já possui os dados do arquivo. Com a /CREATEopção, são criados arquivos e subdiretórios vazios, que não ocupam espaço e, portanto, permitem que as entradas do diretório sejam gravadas na íntegra de forma contígua.
31511 Kerrek SB
1
@ Sarath: Quanto à comparação do NTFS com o Ext, não posso dizer, porque o NTFS não está aberto e a questão da eficiência é bastante vaga. O NTFS é certamente uma excelente peça de tecnologia com um grande número de recursos. Não há realmente uma escolha, porém, porque você usará NTFS no Windows e Ext (ou BTRFS) no Linux e é isso.
31411 Kerrek SB
4

Parte da velocidade que você vê no Ubuntu Linux é provavelmente o cache de arquivos. Até onde eu sei, a cópia de arquivo no Linux não faz nenhum esforço para minimizar o uso do cache de arquivos.

No Linux, quando você copia um arquivo menor que cerca de 50% da sua RAM, o arquivo inteiro é copiado no cache e gravado no disco conforme o tempo permitir. Parece ser muito rápido, mas força outros arquivos mais úteis a sair do cache. Podem ser arquivos de cache da web, emails, arquivos de configuração, arquivos de fonte etc.

O Windows XP costumava copiar sem considerar o cache de arquivos. Mas no Windows Vista, a Microsoft alterou o Explorer para que, quando copie, use uma quantidade limitada de cache de arquivos . Isso reduz o impacto de cópias grandes de arquivos no restante do sistema. Mas também reduz a velocidade de cópias de arquivos relativamente pequenos à velocidade do disco rígido.

Zan Lynx
fonte
Sim Ubuntu usando o mecanismo de cache de arquivos. Também notei que a navegação é um pouco lenta enquanto a cópia estava em andamento. Notei também que a velocidade é constantemente melhorada especialmente ao copiar grande número de arquivos
sarat
Penso que esta é a resposta que aborda a questão quase completamente.
Nandakumar Edamana
2

No Windows, use o Teracopy - ele resolverá o problema geral de estupidez que o Explorer possui.

No Ubuntu, achei a cópia de arquivos muito rápida.

Ainda assim, a caixa de diálogo "Operação do arquivo" não desaparece quando você estiver usando unidades removíveis. Se você tentar ejetar a unidade com segurança imediatamente após o desaparecimento da caixa de diálogo, você receberá uma mensagem de erro. Os dados são enviados embora.

Atualização: as operações de arquivos do Windows são lentas, provavelmente de toda a integração com serviços e registro. Nautilus (no Gnome) é apenas um processo simples, eu acho, ou pelo menos não tem a carga / interrupções que o Explorer possui.

BZ1
fonte
Resolva a estupidez adicionando outra GUI que deve permanecer aberta :) No ubuntu, minha experiência é que você pode descartar a caixa de diálogo copiar / mover e ela irá para a bandeja do sistema, mostrando uma notificação quando concluída. Não tenho certeza de como o Natty com Unity faz isso
sehe,
O Teracopy é carregado com o Explorer. Você não precisa mantê-lo aberto. Portanto, o Teracopy é carregado na memória sem nenhum esforço do usuário e funciona de maneira discreta. O Ubuntu não precisa de nada parecido porque tem toda essa inteligência incorporada ao Nautilus, ou seja, "mesclar" e "pular tudo".
BZ1
+1: obrigado por chamar a TeraCopy para minha atenção!
sehe
Eu estava usando uma ferramenta gratuita e de código aberto chamada cópia rápida. [ ipmsg.org/tools/fastcopy.html.en]
sarat
-1

Mover e copiar arquivos no Linux é naturalmente uma operação rápida. A razão pela qual você pode mover e copiar arquivos tão rapidamente é porque a origem e o destino estão na mesma partição. A operação precisa apenas alterar os inodes. A movimentação de arquivos entre diferentes partições ainda é muito rápida (apenas um minuto ou mais para um arquivo de 1 gig). No Windows, são necessários alguns arquivos para mover para destinos na mesma partição porque o gerenciamento de arquivos no Windows é complicado. (Pense na fragmentação de arquivos e na maneira como o Windows formata os discos rígidos.)

user113907
fonte
Concordo que o movimento é muito rápido dentro das partições. Mas a cópia sempre quis ter uma data duplicada no disco e criar novos inodes. Também duvido que a movimentação de arquivos entre partições seja cara, porque há movimentação física de arquivos. Corrija-me se eu estiver errada.
sarat