Por que minha área de trabalho fica bloqueada quando copio muitos arquivos para uma unidade USB?

10

Minha área de trabalho geralmente é muito responsiva, mesmo sob carga pesada. Mas quando copio arquivos para uma unidade USB, ele sempre fica bloqueado depois de algum tempo. Por "travar", quero dizer:

  • Mover o foco de uma janela para outra pode levar de 10 a 20
  • A alternância de desktops pode levar de 10 a 20
  • Os vídeos não são mais atualizados (no YouTube, o áudio continua a ser reproduzido, apenas o vídeo congela)

A carga do sistema não é excepcionalmente alta quando isso acontece. Às vezes, vejo muito branco no xosview indicando que o kernel está ocupado em algum lugar.

À primeira vista, parece que copiar arquivos para a unidade USB interferiria de alguma forma com o compiz, mas não consigo imaginar qual seria a conexão.

Aqui está a saída de htop :

Aquiestáasaídadeiostat-c-z-t-x-d1duranteumintervalode2minutos:

19.07.201220:38:22avg-cpu:%user%nice%system%iowait%steal%idle1,270,000,3837,520,0060,84Device:rrqm/swrqm/sr/sw/srkB/swkB/savgrq-szavgqu-szawaitr_awaitw_awaitsvctm%utilsdg0,002,000,00216,000,00109248,001011,56247,75677,690,00677,694,63100,00

Comovocêpodever,apenasodiscorígidoexternoestáativo.Aquiestáologcompleto: link

O jeito começou às 20:38:01 e terminou às 20:40:19.

Informações do software:

  • openSUSE 12.1
  • KDE 4.7.x
  • Sistemas de arquivos: reiserfs e btrfs no meu disco rígido interno, btrfs na unidade USB
por Aaron Digulla 11.07.2012 / 16:52

4 respostas

4

Meu primeiro palpite foi btrfs , pois os processos de E / S desse sistema de arquivos às vezes assumem o controle. Mas isso não explicaria por que o X trava.

Olhando para as interrupções, vejo isto:

# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
  0:        179          0          0          0          0          0          0          0  IR-IO-APIC-edge      timer
  1:          6          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
  8:          1          0          0          0          0          0          0          0  IR-IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   acpi
 12:         10          0          0          0          0          0          0          0  IR-IO-APIC-edge      i8042
 16:    3306384          0          0          0          0          0          0          0  IR-IO-APIC-fasteoi   ehci_hcd:usb1, nvidia, mei, eth1

Bem, duh. O driver USB usa o mesmo IRQ da placa gráfica e é o primeiro da cadeia. Se ele travar (porque o sistema de arquivos faz algo caro), a placa gráfica fica sem energia (e a rede também).

    
por 24.07.2012 / 20:45
2

Eu tinha visto problemas semelhantes com o kernel linux-3.1 do openSUSE 12.1 e descobri que a desativação de grandes páginas transparentes ajudou:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

O problema subjacente é que, se um aplicativo alocar 4MB ou mais, o kernel tentará fornecer uma página enorme, para a qual ele precisa de uma RAM contígua total de 4MB. Agora, se houver muitas páginas sujas ao redor, que ainda precisam ser gravadas em um dispositivo USB lento, ele aguarda que o IO termine antes de continuar com a alocação de memória.

    
por 31.07.2013 / 06:48
1

Como mencionado, isso provavelmente tem a ver com a configuração das novas páginas do kernel. Eu conheço várias pessoas com esse problema. Você pode encontrar vários documentos sobre isso na Web, por exemplo

Corrigi completamente o problema na minha configuração fazendo o seguinte. Observe o YMMV, nem todas as correções abaixo podem ser necessárias, e talvez elas não sejam suficientes. Eu posso ter esquecido algo para ser honesto. De qualquer forma, essa é a minha configuração e funciona.

  • Use o kernel linux-ck
  • echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag
por 15.10.2014 / 10:32
-2

Mude o cabo. Remova o oxid da porta usb / cabos.

    
por 11.08.2012 / 23:34

Tags