web-dev-qa-db-fra.com

Pourquoi Linux 30x plus rapide que Windows 10 dans la copie de fichiers?

J'ai 20,3 Go de fichiers et dossiers totalisant plus de 100 000 éléments. J'ai dupliqué tous ces fichiers dans un répertoire à partir de Windows 10, et il m'a fallu 3 heures de copie. Terminé.

L'autre jour, j'ai démarré sous Linux Fedora 24, recopié le même dossier et bam! Il m'a fallu seulement 5 minutes pour le dupliquer au même endroit mais dans un répertoire différent.

Pourquoi Linux est-il si rapide? Et Windows est laborieusement lent?

Il y a une question similaire ici

Est-ce que l'algorithme de copie de fichiers Linux (Ubuntu) est supérieur à Windows 7?

Mais la réponse acceptée fait défaut.

19
James Guana

Les éléments de base de celui-ci se résument à quelques composants clés du système global: l'élément d'interface utilisateur (la partie graphique), le noyau lui-même (ce qui parle au matériel) et le format dans lequel les données sont stockées (c'est-à-dire le système de fichiers). ).

En revenant en arrière, NTFS est de facto pour Windows depuis un certain temps, tandis que de facto pour les principales variantes de Linux, il s'agit de ext système de fichiers. Le système de fichiers NTFS lui-même n’a pas changé depuis Windows XP (2001). De nombreuses fonctionnalités existantes (telles que la réduction/réparation des partitions, le NTFS transactionnel, etc.) sont des fonctionnalités du système d'exploitation (Windows Vista/7/8/10) et ne pas NTFS lui-même. Le système de fichiers ext avait sa dernière version stable majeure (ext4) en 2008. Étant donné que c'est le système de fichiers lui-même qui régit le mode d'accès aux fichiers, si vous utilisez ext4, vous constaterez probablement une amélioration de la vitesse. NTFS; notez cependant que si vous avez utilisé ext2, vous remarquerez peut-être que sa vitesse est comparable.

Il se pourrait aussi bien qu'une partition soit formatée en morceaux plus petits que l’autre. La valeur par défaut pour la plupart des systèmes est un 4096 byte 1 , 2 taille du cluster, mais si vous avez formaté votre partition ext4 à quelque chose comme 16k 3 puis chaque lecture sur le système ext4 obtiendrait 4x les données par rapport au système NTFS (qui pourrait signifie 4x les fichiers en fonction de ce qui est stocké où/comment et comment gros, etc.). La fragmentation des fichiers peut également jouer un rôle dans les vitesses. NTFS gère la fragmentation des fichiers très différemment du système de fichiers ext et, avec 100 000 fichiers ou plus, il y a de fortes chances pour qu'il y ait une certaine fragmentation.

Le composant suivant est le noyau lui-même (pas l'interface utilisateur, mais le code qui communique réellement avec le matériel, le véritable système d'exploitation). Ici, honnêtement, il n'y a pas beaucoup de différence. Les deux noyaux peuvent être configurés pour faire certaines choses, comme la mise en cache/mise en cache de disque, pour accélérer les lectures et les écritures perçues, mais ces configurations ont généralement les mêmes compromis, quel que soit le système d'exploitation; par exemple. La mise en cache peut sembler augmenter considérablement la vitesse de copie/sauvegarde, mais si vous perdez de l'énergie pendant l'écriture en cache (ou retirez la clé USB), vous perdrez toutes les données qui ne sont pas réellement écrites sur le disque et éventuellement même les données corrompues. disque.

Par exemple, copiez un grand nombre de fichiers sur un lecteur USB au format FAT sous Windows et Linux. Sous Windows, cela peut prendre 10 minutes et sous Linux, 10 secondes. immédiatement après avoir copié les fichiers, retirez le lecteur en toute sécurité en l'éjectant. Sous Windows, il serait immédiatement éjecté du système et vous pourriez donc retirer le lecteur du port USB, tandis que sous Linux, le retrait du lecteur pouvait prendre jusqu'à 10 minutes. c’est à cause de la mise en cache (c’est-à-dire que Linux a écrit les fichiers sur RAM puis les a écrits sur le disque en arrière-plan, tandis que Windows sans cache a écrit immédiatement les fichiers sur le disque).

Last est l'interface utilisateur (la partie graphique avec laquelle l'utilisateur interagit). L’interface utilisateur est peut-être une jolie fenêtre avec des graphiques sympas et de jolies barres qui me donne une idée générale du nombre de fichiers copiés, de leur taille et de leur durée; l'interface utilisateur peut également être une console qui n'imprime pas tout informations sauf quand c'est fait. Si l'interface utilisateur doit d'abord parcourir chaque dossier et fichier pour déterminer le nombre de fichiers, leur taille et donner une estimation approximative avant la copie peut en réalité commencer, alors le processus de copie peut prendre plus de temps en raison de la nécessité pour l'interface utilisateur de le faire. Encore une fois, cela est vrai quel que soit le système d'exploitation.

Vous pouvez configurer certaines choses sur un pied d'égalité (comme la mise en cache de disque ou la taille de cluster), mais de manière réaliste, il s'agit simplement de relier toutes les parties pour que le système fonctionne, et plus précisément à la fréquence de mise à jour de ces éléments de code. Le système d’exploitation Windows a parcouru un long chemin depuis Windows XP, mais le sous-système de disque n’a pas vu beaucoup de changements dans le système d’exploitation de toutes les versions depuis de nombreuses années (par rapport au Écosystème Linux qui semble voir de nouveaux FS ou des améliorations assez fréquemment).

J'espère que cela ajoute un peu de clarté.

21
txtechhelp