Après quelques minutes de copie, cela devient de plus en plus lent. Pourquoi?
Par exemple, il commence avec 20 Mo / s, et quand il se termine avec, c'est @ 10 Mo / s.
Divers fichiers, grands, petits, etc.
MISE À JOUR: la question concerne différents systèmes d'exploitation, c'est donc une "question générale"
usb-flash-drive
file-transfer
LanceBaynes
la source
la source
Réponses:
Ce comportement n'est pas spécifique à votre lecteur flash, vous pouvez également le voir avec les disques durs. Cela a à voir avec le mécanisme de mise en cache que la plupart des systèmes d'exploitation et des disques utilisent pour accélérer les petites écritures.
Les 20 Mo / s que vous voyez sont les données en cours d'écriture dans le cache disque (généralement une mémoire rapide mais petite). Une fois que ce cache est plein, il doit être vidé sur le disque - et maintenant vous êtes goulot d'étranglement par le disque plus lent.
Exemple 1: L'effet est vraiment prononcé lorsque vous avez un contrôleur avec un grand cache (comme un bon contrôleur RAID5) où ~ 500 Mo de données peuvent être mises en cache rapidement avant de les vider sur le disque.
Exemple 2: Vous pouvez voir le cache en cours de lecture si vous retirez le lecteur flash en même temps que la copie du fichier est "terminée". À ce stade, votre fichier est divisé entre le disque et le cache - la copie est donc "terminée" en ce qui concerne le système d'exploitation, mais le contrôleur de disque doit toujours écrire ce qui reste dans le cache sur le disque. Si vous remettez la clé USB en place et inspectez le fichier, vous verrez que tout n'est pas là.
Avertissement: Ces exemples ne fonctionneront pas si vous n'avez pas activé la mise en cache d'écriture dans votre système d'exploitation / sur le disque.
De plus, si ce n'est pas la mise en cache du disque au travail, il est probable que ce que vous voyez est un effet de la fragmentation. Au fur et à mesure que le disque devient de plus en plus plein, moins d'espace libre contigu est disponible et le système de fichiers doit travailler plus dur pour trouver des emplacements pour stocker vos fichiers.
la source
Bien que la mise en cache provoque une partie de cela, ce n'est pas le seul facteur. Si la mise en cache était le seul facteur, alors nous nous attendrions à ce que la vitesse d'écriture passe rapidement de plusieurs centaines de Mo / s à la vitesse d'écriture réelle du lecteur très rapidement, et y reste pour le reste de l'écriture. Cependant, ce n'est pas ce que j'ai observé lors de l'exécution de gros transferts vers et depuis le disque (par exemple, la gravure d'images de démarrage). Au lieu de cela, ce que j'observe, c'est que la vitesse diminue progressivement au cours de toute l'opération.
Ce ralentissement est dû à la rémanence des données sur la ou les puces flash utilisées pour stocker les données, nécessitant que certains des blocs soient écrits sur plusieurs fois.
À l'intérieur d'une puce flash, il y a un bloc de données qui peut être écrit. Lors de l'écriture, l'ordinateur ne peut faire que deux choses: il peut effacer un bloc entier, ou changer une partie (ou la totalité) des bits d'un bloc de 0 à 1.
Cependant, certains de ces blocs sont meilleurs que d'autres, en particulier dans les lecteurs flash de qualité inférieure, et en conséquence, lorsque vous y écrivez de nouvelles données, certains bits peuvent parfois revenir à 0 par eux-mêmes juste après avoir été écrits, et don ne change pas. Ainsi, lors de l'écriture dans un bloc, le système d'exploitation doit vérifier que toutes les données ont été écrites correctement, et si ce n'est pas le cas, il doit refaire le bloc en écrivant les mêmes données dans le même bloc deux ou trois fois. jusqu'à ce que les données collent.
Ainsi, lorsque votre ordinateur écrit un tas de données sur le lecteur flash, voici une explication (pas complètement précise, mais assez bonne) de la façon dont il le fait:
Lorsque l'ordinateur écrit sur le lecteur, il signale la vitesse à laquelle il écrit des blocs sur le lecteur pour la première fois. Comme il devra également réécrire les blocs précédents en même temps, le débit total pouvant être utilisé pour les blocs vierges diminue à mesure que le nombre de réécritures qui doivent également se produire augmente. Ainsi, la vitesse d'écriture apparente diminue avec le temps.
la source
Lorsque le fichier est écrit sur un lecteur, qu'il s'agisse d'un lecteur flash USB ou d'un disque dur, les données ne sont PAS / JAMAIS relues pour voir si elles correspondent. Cela prendrait pour toujours. la vérification de l'écriture est effectuée par le matériel (vérification de redondance cyclique) et si une erreur se produit, elle est renvoyée à l'application depuis le matériel détecté une erreur. Le blocage qui se produit et ralentit (même jusqu'à une pause) est provoqué par l'écriture du processeur plus rapidement que l'appareil ne peut le gérer. Vous ne constaterez pas que cela se produit sur les disques durs internes. Vous ne verrez jamais ce qui se passe réellement sur un système d'exploitation Windows, mais sur Linux, vous pouvez réellement voir que le processeur s'arrête jusqu'à ce que le matériel USB dise OK pour continuer
la source