Desempenho lento ao copiar arquivos de e para dispositivos USB

11

Quando copio arquivos de e para dispositivos USB (câmera, HDD, cartão de memória), meu sistema fica muito lento. Por exemplo, se eu quiser fechar uma janela, movo o mouse, mas demora cerca de 2 segundos ou mais antes que o cursor do mouse se mova. Quando eu finalmente ponho o cursor no xe clico nele, nada acontece por mais de 10 segundos. Eu tentei isso com todos os efeitos da área de trabalho desativados, mas o problema persiste.

Software: Linux Mint 9 KDE Hardware:

  • Placa-mãe Asus SLI
  • GPU NVidia 6600
  • 2 GB de RAM
  • 2 GB de swap
  • AMD Athlox X2 @ 3800 +

Para mim, este hardware não deve ter problemas ao executar este software e não o faz até eu copiar arquivos usando USB. Onde devo começar a procurar descobrir isso? Eu meio que acho que o driver gráfico pode ser parte do problema, mas não tenho certeza.

    
por John 20.10.2011 / 20:22

3 respostas

7

Parece haver um problema com páginas enormes no gerenciamento de memória linuxes . Raramente ocorre, mas parece que você observou isso.

Causa

Esta é a minha conta grosseiramente simplificada do que, de acordo com o artigo, acontece.

Se o azar, um processo fica preso no momento em que emite um acesso à memória. Isso ocorre porque, quando grandes páginas transparentes são ativadas, um acesso à memória pode acionar a compactação síncrona (desfragmentação da memória principal), síncrona, o que significa que o acesso à memória não é concluído antes da compactação. Isso em si não é uma coisa ruim. Mas se a gravação (por exemplo, de dados armazenados em buffer para USB) acontecer ao mesmo tempo, a compactação, por sua vez, provavelmente parará, esperando que o write-back termine.

Assim, qualquer processo pode acabar esperando que um dispositivo lento termine de gravar dados em buffer.

Cura

Atualizar a memória principal, como o OP fez, pode ajudar a atrasar o problema. Mas para aqueles que não consideram essa opção, há duas soluções óbvias. Ambos envolvem recompilar o kernel:

por 29.11.2011 / 21:38
2

Isso soa semelhante à minha pergunta aqui (onde uma resposta me apontou para essa pergunta):

link

Mas a teoria é completamente diferente, e a solução que usei não tem relação com a sua, mas funciona perfeitamente.

Eu estava usando o rsync, então tudo que eu tinha que fazer era usar a opção --drop-cache. (o que torna a cópia um pouco mais lenta como efeito colateral)

    
por 10.05.2012 / 15:33
0

O único truque que encontrei realmente funciona: Gnome, nautilus copia arquivos para paradas USB a 100% ou perto de

Se você quiser experimentar alguns truques do usuário avançado, você pode reduzir o tamanho do buffer que o Linux usa configurando / proc / sys / vm / dirty_bytes para algo como 15728640 (15 MB). Isso significa que o aplicativo não pode ficar com mais de 15 MB à frente de seu progresso real.

Um efeito colateral é que seu computador pode ter uma taxa de transferência de dados mais baixa com essa configuração, mas, no geral, acho útil ver que um programa está sendo executado por muito tempo enquanto ele grava muitos dados versus a confusão de ter um programa parece ser feito com o seu trabalho, mas o sistema está atrasado mal como o kernel faz o trabalho real. Configurar dirty_bytes para um valor razoavelmente pequeno também pode ajudar a impedir que o seu sistema pare de responder quando você estiver com pouca memória livre e executar um programa que, de repente, grava muitos dados.

Mas não o defina muito pequeno! Eu uso 15MB como uma estimativa aproximada de que o kernel pode liberar o buffer para um disco rígido normal em 1/4 de segundo ou menos. Isso evita que meu sistema fique "lento".

    
por 24.10.2017 / 00:58