Linux Arch on ARM - Unidade USB aleatória “congelar”

1

Estou rodando um Linux Box em um Seagate Free Agent Dockstar, uma máquina muito limitada, mas mais do que capaz de fazer o que eu preciso, o que é verdade na maioria das vezes ...

Eu tenho o sistema operacional em uma unidade flash e uso um disco rígido Western Digital de 1,5 TB para "USB 2.0" magnético clássico para armazenamento em massa.

Não raramente acontece que a espera por IO% suba repentinamente para quase 100% e o sistema está de joelhos, a ponto de ser muito difícil até mesmo ssh nele; um típico 'iostat -x' nessas situações dá saída como:

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.50 0.00 2.00 8.00 14.80 91400.00 0.00 91400.00 2000.00 100.00

onde sdb é a unidade flash e sda é o disco usb. Isso me diz que a unidade USB está 100% ocupada, mas quase ninguém está escrevendo ou lendo a partir dela.

Eu também usei um 'lsof + D' durante o uso "normal" e nada de suspeito foi encontrado: uma quantidade razoável de arquivo é usada, mas nada de estranho.

Como posso depurar mais profundamente? Tenha em mente que a máquina usa um processador ARM, tem apenas 128MB de RAM e não possui tela ou console local, mas, dado esse limite, posso instalar quase tudo, se necessário.

Edit: Eu também tentei executar o smartctl, que diz que o drive está apto:

SMART overall-health self-assessment test result: PASSED

... há muitos resultados, mas nada disso parece útil

Editar2:

Eu realmente acho que a unidade tem problemas de hardware; Percebi que quando está ocupado 100% sem carga, faz um barulho repetitivo que me lembra os velhos disquetes do Amiga - eles faziam um barulho parecido como se estivessem andando sem um objetivo ...

Por essa razão, a sugestão de mover / var e / tmp para o disco magnético apenas piorou a situação.

Eu acho que a única maneira de resolver isso é comprar um novo disco rígido e fazer backup de dados valiosos o mais rápido possível. : - (

    
por Riccardo Cossu 06.05.2011 / 15:36

2 respostas

1

Verifique novamente se a unidade WD está OK. Acabei de detectar que um dos meus leu erros. Estava tomando quantidades enourmus de tempo (minutos) para ler alguns setores ruins. Infelizmente, a SMART pode não funcionar via USB, o que dificulta a verificação da condição das unidades.

Uma maneira de verificar se está lendo todo o disco usando o dd:

dd if=/dev/sdX of=/dev/null bs=1M

Isso levará algum tempo no USB, mas se os erros do comando dd, você sabe que o disco está quebrado. Você pode ler o disco enquanto ele está montado, mas tenha cuidado com if= e of= !

    
por 06.05.2011 / 23:32
0

Flash drives normalmente têm um baixo desempenho de gravação. Então você precisa minimizar as gravações do sistema operacional na unidade flash.

  • Use as opções "noatime" no fstab para sua partição / e /usr .
  • Desativar troca.
  • Coloque /var em outra coisa, se possível (que "armazenamento massivo", se puder), se não, desative todos os registros que você não precisa absolutamente.
  • Mesma coisa com /tmp .
por 06.05.2011 / 16:25