(Ubuntu) L'algorithme de copie de fichiers Linux est-il meilleur que Windows 7?

13

La copie de Windows est un vrai gâchis depuis Windows Vista. Même Microsoft prétend avoir amélioré les performances, du point de vue de l'utilisateur, ce n'est pas tout à fait visible. Même avec un seul fichier, la fenêtre de copie apparaît trop de temps pour «calculer», puis terminer la copie (même après 100% d'achèvement, la boîte de dialogue reste parfois active).

En même temps, je sauvegardais certains fichiers dans Ubuntu Linux. J'ai senti que c'était vraiment rapide. Cela pourrait être un sentiment causé par des mises à jour plus rapides de l'interface utilisateur.

J'ai lu un article informatif de Jeff Atwood il y a quelques années sur la copie de fichiers Windows . mais quelles sont mes questions spécifiques

  • Les performances des fichiers (Ubuntu) Linux sont-elles meilleures que Windows-7?
  • Les deux algorithmes, Windows et Linux utilisent-ils plusieurs threads et mécanisme de pipelining pour améliorer la vitesse? Si oui, lequel est le meilleur?
Sarat
la source
3
Sous Windows xcopy, ou même robocopy. Bien mieux. Par exemple, avec ce dernier, vous pouvez effectuer deux passes, d'abord pour créer tous les répertoires mais pas pour copier les fichiers, et ensuite pour copier les fichiers réels, ne provoquant ainsi aucune fragmentation sur la cible.
Kerrek SB
1
Ou RichCopy ( blogs.technet.com/b/ken et téléchargement )
sehe
Cela dépend aussi du système de fichiers - votre système utilisant vraisemblablement quelque chose comme ext3/4, qui est en concurrence avec NTFS ici. Vous pouvez également essayer reiserfset xfs- tous deux optimisés pour des opérations rapides avec de petits fichiers.
new123456
@KerrekSB, veuillez répondre à votre commentaire afin que je puisse le voter. (J'ai juste attribué +1 au commentaire, mais vous savez ce que je veux dire.) C'est la réponse.
CarlF
Il convient de noter (bien que 8 ans plus tard!) Que Robocopy / CREATE, bien que très utile pour répliquer une structure de répertoires complète avec des fichiers vides, n'empêche pas à lui seul la fragmentation des fichiers sur la cible. La structure est créée dans la MFT, mais le contenu des fichiers peut ensuite être enregistré n'importe où. Normalement, même en un seul passage si Robocopy exécute un seul thread et copie un fichier à la fois, il ne devrait de toute façon pas y avoir de fragmentation (et l'exécuter en plusieurs threads est une mauvaise idée car cela réduit considérablement les performances d'un disque dur vers une copie HDD, car l'entraînement mécanique doit "moudre" beaucoup plus).
GabrielB

Réponses:

6

Le standard copyintégré dans Windows n'est pas très bon, mais Windows est livré avec deux commandes avancées qui sont beaucoup plus efficaces: xcopyet robocopy. Surtout lorsque vous avez besoin d'un contrôle total sur les fonctionnalités avancées du système de fichiers comme les ACL ou les flux de données alternatifs, robocopyc'est l'outil de choix.

Par exemple, si vous copiez une grande structure de répertoires, vous pouvez souhaiter que la cible ne soit pas fragmentée . L'invocation standard de robocopyest déjà assez bonne dans ce domaine, mais comme les entrées de répertoire sont mises à jour à mesure que les sous-répertoires sont créés, vous pouvez toujours obtenir des répertoires fragmentés. Pour éviter cela, vous pouvez exécuter robocopyen deux passes, la première ne créant que la structure du répertoire cible sans copier aucun contenu de fichier et la seconde pour réellement copier les corps de fichier.

Au total, il robocopyest très efficace et parfaitement conscient des fonctionnalités NTFS.

Kerrek SB
la source
NTFS est-il plus efficace que ext3 / 4?
sarat
Comment une robocopie en deux passes nous aide à réduire la fragmentation, car le contenu réel sera copié plus tard. L'allocation de disque est entièrement contrôlée par le gestionnaire de fichiers non?
sarat
Je fais quelques trucs comme utiliser Beyond Compare pour copier des fichiers. C'est-à-dire que je peux exécuter plusieurs opérations de copie pour maximiser l'utilisation de la bande passante. Mais je ne sais pas à quel point ce sera fragmenté
sarat
2
@Sarath: Concernant la fragmentation: les entrées du répertoire augmentent à mesure que de nouveaux fichiers et sous-répertoires sont ajoutés au répertoire. Si vous créez naïvement le répertoire et commencez à mettre des fichiers, l'enregistrement du répertoire d'origine sera finalement trop petit et devra être étendu, mais maintenant il n'y a plus d'espace car vous avez déjà les données du fichier qui le suivent. Avec l' /CREATEoption, des fichiers et des sous-répertoires vides sont créés, qui n'occupent pas d' espace et permettent ainsi aux entrées de répertoire d'être écrites en totalité de manière contiguë.
Kerrek SB
1
@Sarath: Quant à comparer NTFS à Ext, je ne peux pas le dire, car NTFS n'est pas ouvert et la question de l'efficacité est plutôt vague. NTFS est certainement une fine technologie avec un grand nombre de fonctionnalités. Il n'y a pas vraiment de choix, car vous utiliserez NTFS dans Windows et Ext (ou BTRFS) sous Linux et c'est tout.
Kerrek SB
4

Une partie de la vitesse que vous voyez d'Ubuntu Linux est probablement la mise en cache des fichiers. Pour autant que je sache, la copie de fichiers sous Linux ne fait aucun effort pour minimiser l'utilisation du cache de fichiers.

Avec Linux, lorsque vous copiez un fichier dont la taille est inférieure à environ 50% de votre RAM, le fichier entier est copié dans le cache de fichiers puis écrit sur le disque si le temps le permet. Cela semble être très rapide, mais cela force les autres fichiers plus utiles hors du cache. Il peut s'agir de fichiers de cache Web, d'e-mails, de fichiers de configuration, de fichiers de polices, etc.

Windows XP copiait également sans tenir compte du cache de fichiers. Mais dans Windows Vista, Microsoft a modifié l'Explorateur de sorte que lorsqu'il copie, il utilise une quantité limitée de cache de fichiers . Cela réduit l'impact des copies de fichiers volumineux sur le reste du système. Mais cela réduit également la vitesse des copies de fichiers, même relativement petites, à la vitesse du disque dur.

Zan Lynx
la source
Oui Ubuntu en utilisant le mécanisme de mise en cache des fichiers. J'ai également remarqué que la navigation est légèrement lente pendant la copie. J'ai également remarqué que la vitesse est constamment améliorée, en particulier lors de la copie d'un grand nombre de fichiers
sarat
Je pense que c'est la réponse qui répond à la question presque complètement.
Nandakumar Edamana
2

Sous Windows, utilisez Teracopy - cela résoudra le problème général de stupidité qu'Explorer a.

Dans Ubuntu, j'ai trouvé que la copie de fichiers était très rapide.

La boîte de dialogue "File Opertion" ne disparaît toujours pas lorsque vous utilisez des lecteurs amovibles. Si vous essayez d'éjecter le lecteur en toute sécurité immédiatement après la disparition de la boîte de dialogue, vous obtiendrez un message d'erreur. Les données passent cependant.

Mise à jour: les opérations sur les fichiers Windows sont lentes, probablement de toute l'intégration avec les services et le registre. Nautilus (dans Gnome) est juste un processus simple je suppose ou au moins n'a pas la charge / les interruptions qu'Explorer a.

BZ1
la source
Résolvez la stupidité en ajoutant une autre interface graphique qui doit rester ouverte :) Dans ubuntu, mon expérience est que vous pouvez fermer la boîte de dialogue copier / déplacer et elle ira dans la barre d'état système, affichant une notification une fois terminée. Je ne sais pas comment Natty avec le bureau Unity fait que
sehe
Teracopy se charge d'Explorer. Vous n'avez pas besoin de le garder ouvert. Ainsi, Teracopy est chargé en mémoire sans aucun effort de l'utilisateur et il fonctionne discrètement. Ubuntu n'a pas besoin de quelque chose comme ça, car il a toute cette intelligence intégrée à Nautilus, c'est-à-dire, "fusionner" et "sauter toutes les options".
BZ1
+1: merci d'avoir porté TeraCopy à mon attention!
sehe
J'utilisais un outil gratuit et open source appelé fastcopy. [ ipmsg.org/tools/fastcopy.html.en]
sarat
-1

Déplacer et copier des fichiers sous Linux est naturellement une opération rapide. La raison pour laquelle vous pouvez déplacer et copier des fichiers si rapidement est que la source et la destination se trouvent dans la même partition. L'opération n'a qu'à changer les inodes. Le déplacement de fichiers entre différentes partitions est toujours très rapide (seulement une minute environ pour un fichier de 1 gig). Sous Windows, il faut du temps pour déplacer des fichiers vers des destinations sur la même partition car la gestion des fichiers dans Windows est compliquée. (Pensez à la fragmentation des fichiers et à la façon dont Windows formate les disques durs.)

user113907
la source
Je suis d'accord que le déplacement est assez rapide dans les partitions. Mais la copie a toujours voulu avoir une date dupliquée sur le disque et créer de nouveaux inodes. Je doute également que le déplacement de fichiers entre partitions soit coûteux car il y a un mouvement physique de fichiers. Corrigez-moi si je me trompe.
sarat