Pourquoi la copie sur mon lecteur USB est-elle si lente sous Linux (et plus rapide sous Windows)?
Raison 1. La mise en cache des fichiers peut rendre les écritures plus lentes ou plus rapides
Le problème que je semble voir dans l’interface graphique est que la barre de progression atteint presque instantanément 90%, se termine à 100% un peu plus lentement, puis se bloque pendant 10 minutes.
Une chose que vous devez comprendre est la mise en cache des fichiers. Linux (et Windows) utilisera sinon une RAM "vide" pour mettre en cache les opérations de lecture / écriture et les rendre plus rapides lors des accès suivants. La mise en cache des opérations de copie sur des périphériques lents entraîne le comportement que vous constatez - la "fin rapide" est en train d'écrire dans le cache, puis elle ralentit et s'arrête car le vidage des données dans le cache prendre très longtemps. Si vous abandonnez à ce stade, les données sont corrompues (comme vous l'avez noté) car la synchronisation n'est jamais terminée.
Une telle copie dans Windows peut sembler plus rapide (y compris les vitesses de Mo / s indiquées) car Windows n'attend parfois pas la synchronisation et déclare le travail terminé dès que possible que les données sont écrites en cache.
Raison 2. L'écriture de nombreux fichiers, en particulier les plus petits, est lente
Pour copier 1,8 Go
En raison du fonctionnement de la mémoire flash et des systèmes de fichiers, le débit (vitesse) le plus rapide est atteint lors de l’écriture de fichiers très volumineux. L'écriture de nombreux petits fichiers ou même des données mixtes contenant un certain nombre de petits fichiers peut ralentir considérablement le processus. Cela affecte également les disques durs, mais dans une moindre mesure.
Raison 3. Les vitesses d’écriture d’une clé USB et d’un disque SSD ne peuvent pas être comparées
J'ai un super SSD USB de 32 Go de talent dans le port voisin et ça marche à la vitesse attendue.
-
Une clé USB de variété jardin se compose généralement de puces de mémoire flash qui sont écrites en série (séquentiellement) et n’ont pas de cache propre.
-
Par contre, un SSD contient un contrôleur qui écrit sur les puces de mémoire flash parallel , augmentant le débit d’un facteur 2 ou plus sur la clé USB.
- Si votre disque SSD de 32 Go avait 4 puces de 8 Go, il serait toujours 4 fois plus rapide que la clé USB lors de toute opération d’écriture.
- Le SSD également contient un cache RAM (comme les disques durs), ce qui lui permet de stocker rapidement les données entrantes dans le cache et d'indiquer le système d'exploitation. la mémoire flash.
-
Ainsi, avec un gros fichier, votre Go de 32 Go avec la structure 4x que nous supposions serait 4 fois plus rapide; avec beaucoup de petits fichiers, il serait 10 fois plus rapide ou plus rapide car il pourrait les stocker intelligemment dans son cache.
En résumé , voici les raisons pour lesquelles la copie de fichiers sur des clés USB peut paraître plus lente sous Linux. Est-ce en fait plus lent à cause d'un problème de matériel / pilote ou autre?
Faire une comparaison correcte des vitesses d’écriture entre Linux et Windows
- D'abord, oubliez le SSD pour la raison 3. C'est comme les oranges et les pommes.
- Pour annuler les effets de la raison 1 (mise en cache) et de la raison 2 (petits fichiers), vous devez tester avec un seul fichier volumineux, supérieur à la quantité de RAM du système de test.
- Sous Linux, vous pouvez le créer avec
dd if=/dev/urandom of=largetest bs=1M count=7500
, ce qui vous donne un fichier de test de 7500 Mo. En supposant que votre système a moins de 4 Go de RAM, il est assez bon. Copiez-le sur une clé Sandisk 8 Go fraîchement formatée et chronométrez-la.
- Redémarrez sous Windows et copiez
largetest
de la clé USB sur votre disque dur. Redémarrez (pour le supprimer du cache). Formatez ensuite la clé USB (même vfat / FAT32!) Et copiez largetest
du disque dur sur la clé.
- Comment se comparent les temps?