Le système se bloque lorsque les E / S du disque sont saturées


8

Lorsque je fais un transfert de fichiers volumineux de mon disque dur externe USB3 vers mon disque dur interne (ou vice versa), que ce soit via Nautilus ou via un terminal, Ubuntu (Unity) se verrouillera presque complètement. Des choses comme alt-tab prennent 20 secondes ou plus pour se terminer pendant le transfert de fichiers. Ce n'est pas le cas lorsqu'il y a beaucoup de lectures / écritures aléatoires sur le disque, comme lors de l'installation de packages.

Lorsque j'exécutais Windows, je pouvais exécuter un transfert de fichiers en arrière-plan et continuer à faire des choses, bien que plus lentement lorsque quelque chose était nécessaire pour accéder au disque. Je pourrais toujours alt-tab très bien.

Il semble qu'Ubuntu donne la priorité au transfert de fichiers avant toutes les autres E / S de disque, c'est pourquoi il se bloque. Sous Windows, il semble que les transferts de fichiers aient une priorité inférieure, ce qui signifie que le système peut rester réactif pendant que le disque est saturé.

Comment puis-je réparer cela? C'est plutôt ennuyeux, car l'ordinateur devient complètement inutilisable lors de la copie de fichiers. Ce problème se produit à la fois dans 14.04 et 15.10. Je suis obligé de brancher mon disque dur sur un port USB2 pour éviter ce problème, ce qui entraîne des temps de transfert beaucoup plus longs.


Ne devrait pas, mais vérifiez si unix.stackexchange.com/questions/107703/… aide
Rmano

Réponses:


10

J'ai eu le même problème sur mon ordinateur portable, qui a un système de disque assez lent par rapport au reste de l'ordinateur.

J'ai pu faire beaucoup mieux, en changeant l'algorithme de planification utilisé pour les transferts de disque. Par défaut, Ubuntu utilise Deadline, mais je trouve que mon système répond plus rapidement lorsque j'utilise cfq.

Pour voir quel planificateur vous utilisez, lancez la commande

cat /sys/class/block/sda/queue/scheduler    

Pour effectuer une modification unique (jusqu'au redémarrage), exécutez la commande

echo cfq | sudo tee /sys/class/block/sda/queue/scheduler

Notez qu'il est important que la modification soit apportée à tout ce que vous avez pour votre disque dur externe; Le mien se charge généralement en tant que sdb. donc je lancerais la commandeecho cfq | sudo tee /sys/class/block/sdb/queue/scheduler

Je rend ma modification permanente pour tous les lecteurs connectés à mon ordinateur, en ajoutant le paramètre du noyau elevator=cfqdans mon fichier grub, qui ressemble à ceci:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noautogroup elevator=cfq"

Wow, cela a fonctionné. Merci! Mon système est maintenant beaucoup plus réactif lors du transfert et est en fait plus rapide pour charger les choses dans l'ensemble.
Degru

Heureux d'entendre que cela a aidé.
Charles Green

1
> Par défaut, Ubuntu utilise Deadline, mais je trouve que mon système répond plus rapidement lorsque j'utilise l'échéance. Je soupçonne que vous vouliez que cette phrase se termine par '... quand j'utilise cfq'.
markus_b

Je n'ai jamais cherché de solution à cela pour une raison ou une autre. J'ai surévalué cette réponse lorsqu'elle a été publiée il y a quelques jours, maintenant j'ai eu la chance de la tester (j'ai dû migrer beaucoup de torrents de Déluge vers Transmission, ce qui nécessitait de revérifier chaque torrent) et changer le planificateur était en effet une amélioration. Le système continue de bégayer, en particulier lors du changement d'espace de travail, mais il est certain qu'il ne se bloque presque pas complètement comme il le faisait auparavant. Merci! Cette réponse est si utile que l'OMI mérite une prime (et j'en mets une).
kos

@kos Ce n'est pas une solution complète, ou je serais certainement beaucoup plus heureux moi-même - je bégaie encore de temps en temps aussi, et je trouve cela très frustrant.
Charles Green
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.