Linux Arch sur ARM – Random USB drive "freeze"

Je lance une boîte Linux sur un Dockstar Seagate Free Agent, une machine très limitée, mais plus que capable de faire ce dont j'ai besoin, ce qui est vrai la plupart du temps …

J'ai le système d'exploitation sur un lecteur flash et j'utilise un disque dur USB externe externe USB de 2 "classique" Western Digital 1,5T pour un stockage massif.

Il arrive rarement que l'attente d'IO% augmente soudainement jusqu'à près de 100% et que le système est sur ses genoux, au point qu'il est très difficile de même ssh; Un «iostat -x» typique dans ces situations donne une sortie comme:

Device: rrqm/s wrqm/sr/sw/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 

Où sdb est le lecteur flash et sda est le disque USB. Cela me dit que le lecteur USB est à 100% occupé, mais presque personne ne l'écrit ou ne lit.

J'ai également utilisé un 'lsof + D' pendant une utilisation "normale" et rien de suspect n'est trouvé: une quantité suffisante de fichier est utilisée, mais rien d'étrange.

Comment puis-je déborder plus profondément? Gardez à l'esprit que la machine utilise un processeur ARM, n'a que 128 Mo de RAM et n'a pas d'écran ou de console locale, mais, compte tenu de ces limites, je peux installer presque tout si nécessaire.

Edit: J'ai également essayé d'exécuter Smartctl qui dit que le lecteur est en forme:

SMART résultat général de l'auto-évaluation de la santé: PASSÉ

… il y a beaucoup de résultats, mais rien de tout cela ne semble utile

Edit2:

Je pense vraiment que le lecteur a des problèmes matériels; J'ai remarqué que quand il est occupé à 100% sans charge, il fait un bruit répétitif qui me rappelle les disquettes Amiga de l'ancienne journée – ils ont fait un bruit semblable comme ils circulaient sans but …

Pour cette raison, la suggestion de déplacer / var et / tmp sur le disque magnétique n'a aggravé que la situation.

Je suppose que le seul moyen de résoudre ceci est d'acheter un nouveau disque dur et de sauvegarder des données précieuses le plus tôt possible. 🙁

Vérifiez que le lecteur WD est correct. Je viens de détecter que l'un des miennes a lu des erreurs. Il prenait enourmus des quantités de temps (minutes) pour lire certains secteurs défectueux. Malheureusement, SMART peut ne pas fonctionner sur USB, ce qui rend la vérification des disques difficile.

Une façon de vérifier que c'est la lecture de l'ensemble du disque en utilisant dd:

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

Cela prendra un certain temps sur l'USB, mais si les erreurs de commande dd, vous savez que le disque est cassé. Vous pouvez lire le disque pendant qu'il est monté, mais faites attention avec if= et of= !

Les lecteurs flash ont généralement de mauvaises performances d'écriture. Vous devez donc minimiser les écritures du système d'exploitation sur le lecteur flash.

  • Utilisez les options "noatime" dans fstab pour votre partition / et /usr .
  • Désactiver le swap.
  • Mettez /var sur quelque chose d'autre si possible (ce "stockage massif" si vous le pouvez), sinon désactivez toute la journalisation dont vous n'avez absolument pas besoin.
  • Même chose avec /tmp .