Pourquoi les opérations de copie de fichiers sous Linux ralentissent-elles au fil du temps?

22

J'ai 12 ~ 200 Mo de fichiers. La copie de l'un d'entre eux sur un autre lecteur prend 20 secondes. Lorsque j'essaie de les copier tous en même temps, cela dit d'abord que ça va prendre 5 minutes, puis ça continue de ralentir dans les heures et les jours.

Je copie les fichiers via Thunar dans XFCE, mais je me souviens avoir rencontré des problèmes similaires en utilisant la ligne de commande. Pourquoi cela se produit-il et que puis-je faire pour y remédier, à part la simple copie des fichiers un par un?

Utilisateur non trouvé
la source
Avez-vous vérifié le lecteur pour les erreurs? Ces fichiers sont-ils dans des sous-dossiers?
tubaguy50035
@ tubaguy50035 Les fichiers ne sont pas dans des sous-dossiers. Cela étant dit, il est probable que le lecteur source contienne des erreurs. Je vais vérifier.
Utilisateur non trouvé
@CodeGnome J'ai fait un cp -v sourcedir / * destdir de base.
Utilisateur non trouvé

Réponses:

25

Il s'agit d'un problème connu avec le noyau Linux lui-même connu depuis des lustres, personne n'a encore été résolu.

il n'existe actuellement aucun correctif ou solution de contournement connue, à part l'utilisation de Windows qui augmente la vitesse et se normalise ensuite. Je trouve que ce bogue est un problème très prioritaire, mais les programmeurs ne ressentent pas la même chose. C'est ce bug à lui seul qui commence à m'éloigner de Linux.

Réfs:

Dave
la source
6
Citation requise! Cela pourrait aider à trouver une réponse si vous pouviez fournir une documentation qui pointe vers ce bogue
Journeyman Geek
6
et ici, qui peut être trouvé comme lien dans la citation originale. bugzilla.kernel.org/show_bug.cgi?id=12309
Dave
Vous vous éloignez de Linux juste pour cette raison ???
Kyrol
1
@Kyrol c'est une très grande raison!
puk
10

Vous devriez essayer rsync pour surveiller votre vitesse de transfert. Par exemple:

rsync -PSauv sourcedir/* destdir/

Si vous constatez réellement une baisse de la vitesse de transfert, par opposition aux fichiers qui sont tout simplement volumineux, alors vous devez regarder quelques autres choses.

  1. Si votre disque est lié aux E / S, vous aurez des problèmes. Vous voyez souvent cela lorsque vous écrivez beaucoup sur un lecteur flash ou un périphérique USB externe.

  2. Testez vos deux disques avec hdparm -Tt <device>pour voir si l'un est considérablement plus lent qu'il ne devrait l'être, ou considérablement plus lent que l'autre périphérique, ce qui peut entraîner des problèmes d'E / S.

  3. Vérifiez votre sortie dmesg et votre état SMART pour vous assurer que vous n'avez pas d'erreurs de disque évidentes. Vous pouvez également considérer badblocks -nsi vous suspectez des erreurs de disque sur un lecteur non SMART.

Il existe de nombreuses raisons pour lesquelles un disque peut se bloquer ou fonctionner de manière sous-optimale, mais tant que vous ne pourrez pas mesurer le problème, vous ne saurez pas quel est le problème. :)

CodeGnome
la source
2

N'oubliez pas que le processus de copie de fichiers est également mis en cache par Linux. Si vous prenez un seul fichier (même s'il s'agit d'un fichier de 200 Mo) et que vous commencez à le copier à un autre endroit, Linux met en cache, avec une grande probabilité, le fichier entier en mémoire et l'écrit dans son nouvel emplacement. Ensuite, si vous choisissez de copier à nouveau ce fichier et avec lui un tas d'autres fichiers, le premier fichier est déjà mis en cache, puis ignore probablement toute la "partie lecture", tandis que les autres sont d'abord lus puis écrits dans leurs sources / destinations. Cette fonctionnalité peut même conduire à des vitesses de transfert infinies et à des bizarreries similaires, alors ne faites confiance à aucune mesure qui pourrait être invalidée par les mécanismes de chachages précédents.

Avio
la source
-3

Gravez une copie de SliTaz sur un CD / USB.

Il est conçu pour être utilisé sur des machines très anciennes et fonctionne très rapidement car il est en RAM. Vous n'avez pas besoin de faire une installation, exécutez-la simplement en direct. Si vous avez un port USB monté, vous pourrez le voir, puis copier ce dont vous avez besoin sur votre ordinateur. Les taux de transfert que j'ai trouvés stables et rapides.

user202442
la source