Después de unos minutos de copia, se vuelve cada vez más lento. ¿Por qué?
Por ejemplo, comienza con 20 MByte / seg, y cuando termina con él, es @ 10 MByte / s.
Varios archivos, grandes, pequeños, etc.
ACTUALIZACIÓN: la pregunta se refiere a varios sistemas operativos, por lo que es una "pregunta general"
usb-flash-drive
file-transfer
LanceBaynes
fuente
fuente
Respuestas:
Este comportamiento no es específico de su unidad flash, también puede verlo con los discos duros. Tiene que ver con el mecanismo de almacenamiento en caché que la mayoría de los sistemas operativos y discos emplean para acelerar las pequeñas escrituras.
Los 20 mb / s que ves son los datos que se escriben en la memoria caché del disco (generalmente memoria rápida pero pequeña). Una vez que este caché está lleno, debe volcarse al disco, y ahora el disco más lento lo está obstruyendo.
Ejemplo 1: El efecto es realmente pronunciado cuando tiene un controlador con una memoria caché grande (como un buen controlador RAID5) donde ~ 500 mb de datos se pueden almacenar en caché rápidamente antes de que se descarguen en el disco.
Ejemplo 2: puede ver el caché en reproducción si extrae la unidad flash al mismo tiempo que la copia del archivo "terminó". En este momento, su archivo se divide entre el disco y el caché, por lo que la copia está "terminada" en lo que respecta al sistema operativo, pero el controlador de disco aún necesita escribir lo que queda en el caché en el disco. Si vuelve a colocar la unidad flash e inspecciona el archivo, verá que no está todo allí.
Descargo de responsabilidad: estos ejemplos no funcionarán si no tiene habilitado el almacenamiento en caché de escritura en su sistema operativo / en el disco.
Además, si no se trata del almacenamiento en caché de disco en el trabajo, es probable que lo que esté viendo sea un efecto de fragmentación. A medida que el disco se llena cada vez más, hay menos espacio libre contiguo disponible y el sistema de archivos tiene que trabajar más para encontrar lugares para colocar sus archivos.
fuente
Si bien el almacenamiento en caché causa algo de esto, no es el único factor. Si el almacenamiento en caché fuera el único factor, entonces esperaríamos que la velocidad de escritura caiga rápidamente de varios cientos de MB / s a la velocidad de escritura real de la unidad muy rápidamente, y permanezca allí durante el resto de la escritura. Sin embargo, esto no es lo que he observado al realizar transferencias grandes desde y hacia el disco (por ejemplo, grabar imágenes de arranque). En cambio, lo que observo es que la velocidad disminuye gradualmente a lo largo de toda la operación.
Esta desaceleración es causada por la remanencia de datos en los chips flash utilizados para almacenar los datos, lo que requiere que algunos de los bloques se escriban en más de una vez.
Dentro de un chip flash, hay un bloque de datos en el que se puede escribir. Al escribir, solo hay dos cosas que la computadora puede hacer: puede borrar un bloque completo o cambiar algunos (o todos) los bits de un bloque de 0 a 1.
Sin embargo, algunos de esos bloques son mejores que otros, especialmente en unidades flash de menor calidad, y como resultado al escribir nuevos datos en él, algunos de los bits a veces pueden volver a 0 por sí mismos justo después de ser escritos, y no No cambies. Por lo tanto, al escribir en un bloque, el sistema operativo debe verificar para asegurarse de que todos los datos se escribieron correctamente, y si no fue así, debe rehacer el bloque escribiendo los mismos datos en el mismo bloque dos o tres veces hasta que los datos se peguen.
Entonces, cuando su computadora está escribiendo un montón de datos en la unidad flash, aquí hay una explicación (no completamente precisa, pero lo suficientemente buena) de cómo lo hace:
Cuando la computadora escribe en el disco, informa la velocidad a la que escribe bloques en el disco por primera vez. Como también tendrá que reescribir bloques anteriores al mismo tiempo, el rendimiento total que se puede usar para bloques vírgenes disminuye a medida que aumenta el número de reescrituras que también deben suceder. Por lo tanto, la velocidad de escritura aparente disminuye con el tiempo.
fuente
Cuando el archivo se escribe en una unidad, ya sea una unidad flash USB o un disco duro, los datos NO se leen / NUNCA se leen para ver si coinciden. Eso tomaría para siempre. El hardware realiza la verificación de la escritura (verificación de redundancia cíclica) y, si se produce un error, se vuelve a publicar en la aplicación desde que el hardware detectó un error. El bloqueo que ocurre y se ralentiza (incluso hasta una pausa) es causado por la escritura de la CPU más rápido de lo que el dispositivo puede manejarlo. No encontrará que esto suceda en los discos duros internos. Nunca verá lo que realmente está sucediendo en un sistema operativo Windows, pero en Linux puede ver que la CPU se detiene hasta que el hardware USB dice OK para continuar
fuente