Por que as operações de cópia de arquivo no Linux ficam mais lentas com o tempo?

22

Eu tenho 12 ~ 200 MB de arquivos. Copiar um deles para outra unidade leva 20 segundos. Quando tento copiar todos eles de uma só vez, primeiro diz que vai demorar 5 minutos e depois fica lento nas horas e dias.

Estou copiando os arquivos através do Thunar no XFCE, mas lembro-me de ter problemas semelhantes usando a linha de comando. Por que isso ocorre e o que posso fazer para remediá-lo, além de copiar os arquivos um por um?

Usuário não encontrado
fonte
Você verificou a unidade quanto a erros? Esses arquivos estão em subpastas?
Tubaguy50035
@ tubaguy50035 Os arquivos não estão nas subpastas. Dito isto, é provável que a unidade de origem possa ter erros. Vou verificar.
Usuário não encontrado
@CodeGnome Eu fiz um cp -v sourcedir básico / * destdir.
Usuário não encontrado

Respostas:

25

Este é um problema conhecido no próprio kernel do Linux, que é conhecido há muito tempo, ninguém foi abordado ainda.

Atualmente, não há correção ou solução alternativa conhecida, além de usar o Windows, que aumenta a velocidade e depois normaliza. Acho que esse bug é um problema de alta prioridade, mas os programadores não se sentem da mesma maneira. É apenas esse bug que está começando a me afastar do Linux.

Refs:

Dave
fonte
6
Citação necessária! Pode ajudar o nosso trabalho uma resposta se você pudesse dar alguma documentação que aponta para esse bug
Journeyman Geek
6
e aqui, que pode ser encontrado como um link na citação original. bugzilla.kernel.org/show_bug.cgi?id=12309
Dave
Você afasta o Linux apenas por esse motivo ???
Kyrol
11
@Kyrol esta é uma razão muito grande!
puk 12/07/19
10

Você deve tentar o rsync para monitorar sua velocidade de transferência. Por exemplo:

rsync -PSauv sourcedir/* destdir/

Se você realmente observar uma queda na velocidade de transferência, em vez de arquivos grandes, precisará observar algumas outras coisas.

  1. Se o seu disco estiver ligado à E / S, você terá problemas. Você costuma ver isso ao gravar muito em uma unidade flash ou em um dispositivo USB externo.

  2. Teste os dois discos hdparm -Tt <device>para ver se um é muito mais lento do que deveria ou muito mais lento que o outro dispositivo, o que pode levar a problemas de E / S.

  3. Verifique sua saída do dmesg e seu status SMART para garantir que você não tenha nenhum erro de disco óbvio. Você também pode considerar badblocks -nse suspeitar de erros de disco em uma unidade não-SMART.

Existem várias razões pelas quais um disco pode tragar ou executar de forma sub-ideal, mas até que você possa medir o problema, não saberá qual é o problema. :)

CodeGnome
fonte
2

Lembre-se de que também o processo de cópia de arquivo é armazenado em cache pelo Linux. Se você pegar um único arquivo (mesmo que com 200 MB) e começar a copiá-lo para outro local, o Linux armazena em cache, com grande probabilidade, o arquivo inteiro na memória e o grava em seu novo local. Então, se você optar por copiar esse arquivo novamente e com ele vários outros arquivos, o primeiro arquivo já será armazenado em cache e provavelmente ignorará toda a "parte lida", enquanto os outros serão lidos primeiro e depois gravados em suas fontes / destinos. Esse recurso pode até levar a velocidades infinitas de transferência e esquisitices semelhantes; portanto, não confie em nenhuma medida que possa ser invalidada por mecanismos de chaching anteriores.

Avio
fonte
-3

Grave uma cópia do SliTaz em um CD / USB.

Ele foi projetado para uso em máquinas realmente antigas e funciona muito rápido, pois está na RAM. Você não precisa instalar, basta executá-lo ao vivo. Se você tiver um USB montado, poderá vê-lo e copiar o que precisa para o seu computador. As taxas de transferência que encontrei são estáveis ​​e rápidas.

user202442
fonte