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 bloquera presque complètement. Des choses comme alt-tab prennent 20 secondes ou plus pour terminer pendant le transfert de fichier. Ce n'est pas le cas lorsqu'il y a beaucoup de lectures/écritures aléatoires sur le disque, par exemple lors de l'installation de packages.
Lorsque j'utilisais Windows, je pouvais effectuer un transfert de fichier en arrière-plan tout en restant capable de faire certaines choses, mais plus lentement, lorsque quelque chose devait être fait pour accéder au disque. Je pourrais toujours alt-tab très bien.
Il semble qu'Ubuntu donne la priorité au transfert de fichiers par rapport à toutes les autres E/S de disque, raison pour laquelle il se verrouille. Sous Windows, il apparaît que les transferts de fichiers ont une priorité inférieure, ce qui signifie que le système peut rester réactif tant que le disque est saturé.
Comment puis-je réparer cela? C'est plutôt gênant, car l'ordinateur devient complètement inutilisable lors de la copie de fichiers. Ce problème se produit 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.
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 améliorer cela beaucoup mieux en modifiant l'algorithme de planification utilisé pour les transferts de disque. Par défaut, Ubuntu utilise Date limite, 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 un changement ponctuel (jusqu'au redémarrage), lancez la commande
echo cfq | Sudo tee /sys/class/block/sda/queue/scheduler
Notez qu’il est important que le changement soit apporté à ce que vous avez pour votre disque dur externe; Le mien se charge habituellement en tant que sdb. donc je donnerais la commande echo 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 de noyau elevator=cfq
dans mon fichier grub, qui ressemble à ceci:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noautogroup elevator=cfq"