Por que o Linux é 30x mais rápido que o Windows 10 em Copiando arquivos?

12

Eu tenho 20,3 Gig de arquivos e pastas, totalizando mais de 100 mil itens. Eu dupliquei todos esses arquivos em um diretório do Windows 10 e precisei de 3hrs de cópia. Feito.

Outro dia, eu inicializei no Linux Fedora 24, recopiei a mesma pasta e bam! Levei apenas 5 minutos para duplicá-lo no mesmo lugar, mas em um diretório diferente.

Por que o Linux é tão rápido? E o Windows é extremamente lento?

Existe uma questão semelhante aqui

É Linux (Ubuntu) algoritmo de cópia de arquivos melhor que o Windows 7?

Mas a resposta aceita é bastante ausente.

    
por Dominic Guana 15.09.2016 / 02:32

1 resposta

16

O básico é decompor-se em alguns componentes-chave do sistema total: o elemento da interface do usuário (a parte gráfica), o próprio kernel (o que fala ao hardware) e o formato no qual os dados são armazenados o sistema de arquivos).

Retrocedendo, NTFS tem sido, de fato, o Windows por algum tempo, enquanto o de fato para as principais variantes do Linux está o sistema de arquivos ext . O sistema de arquivos NTFS em si não mudou desde o Windows XP (2001), muitos recursos existentes (como encolhimento / recuperação de partições, NTFS transacional, etc.) são recursos do sistema operacional (Windows Vista / 7/8/10) e não NTFS em si. O sistema de arquivos ext teve sua última grande versão estável ( ext4 ) em 2008. Já que o sistema de arquivos é o que determina como e onde os arquivos são acessados, se você estiver usando ext4 , provavelmente você terá perceba uma melhora na velocidade sobre o NTFS; observe, no entanto, se você usou ext2 , poderá notar que é comparável em velocidade.

Pode ser também que uma partição seja formatada em partes menores que a outra. O padrão para a maioria dos sistemas é um 4096 byte 1 , 2 tamanho do cluster, mas se você formatou sua partição ext4 como algo como 16k 3 então cada leitura no sistema ext4 obteria 4x os dados em relação ao sistema NTFS (o que poderia significar 4x os arquivos dependendo do que está armazenado onde / como e quão grande, etc.) . A fragmentação dos arquivos também pode desempenhar um papel nas velocidades. O NTFS manipula a fragmentação de arquivos de maneira muito diferente do sistema de arquivos ext e, com arquivos de mais de 100k, há uma boa chance de haver alguma fragmentação.

O próximo componente é o próprio kernel (não a interface do usuário, mas o código que realmente fala com o hardware, o verdadeiro SO). Aqui, honestamente não há muita diferença. Ambos os kernels podem ser configurados para fazer certas coisas, como cache / buffer de disco, para acelerar leituras e gravações percebidas, mas essas configurações geralmente têm as mesmas desvantagens, independentemente do sistema operacional; por exemplo. o cache pode parecer aumentar imensamente a velocidade de copiar / salvar, mas se você perder energia durante a gravação do cache (ou retirar a unidade USB), perderá todos os dados gravados no disco e possivelmente até mesmo os dados corrompidos já gravados disco.

Como exemplo, copie muitos arquivos para uma unidade USB formatada em FAT no Windows e no Linux. No Windows, pode levar 10 minutos, enquanto no Linux levará 10 segundos; imediatamente após ter copiado os arquivos, remova com segurança a unidade, ejetando-a. No Windows, ele seria imediatamente ejetado do sistema e, portanto, você poderia remover a unidade da porta USB, enquanto no Linux, talvez demorasse 10 minutos antes que você pudesse remover a unidade; isso é devido ao armazenamento em cache (por exemplo, o Linux gravou os arquivos na RAM e os gravou no disco em segundo plano, enquanto o Windows sem cache gravou os arquivos imediatamente no disco).

A última é a interface do usuário (a parte gráfica com a qual o usuário interage). A interface do usuário pode ser uma janela bonita com alguns gráficos legais e barras agradáveis que me dão uma ideia geral de quantos arquivos estão sendo copiados e de quão grande isso é e quanto tempo isso pode levar; a interface do usuário também pode ser um console que não imprime qualquer qualquer informação , exceto quando estiver pronto. Se a interface do usuário tiver que primeiro passar por cada pasta e arquivo para determinar quantos arquivos existem, além de quão grandes eles são e fornecer uma estimativa aproximada antes , ela pode começar a copiar, então o processo de cópia pode levar mais tempo devido à interface do usuário que precisa fazer isso. Novamente, isso é verdade, independentemente do SO.

Você pode configurar algumas coisas para serem iguais (como cache de disco ou tamanho de cluster), mas realisticamente falando, tudo se resume a como todas as partes se unem para fazer o sistema funcionar e mais especificamente com que frequência esses códigos Atualizada. O sistema operacional Windows percorreu um longo caminho desde o Windows XP, mas o subsistema de disco é uma área que não tem visto muito TLC no sistema operacional em todas as versões por muitos anos (em comparação com o Ecossistema Linux que parece ver algum novo FS ou melhoria com bastante frequência).

Espero que adicione alguma clareza.

    
por 15.09.2016 / 08:28