Un problema que he tenido regularmente con algunos Pendrives USB es que suelen demorar demasiado las copia de archivos y llegan incluso a elevar la carga del CPU, donde incluso la copia parece detenida, cayendo la velocidad a cero.

Hay varias recomendaciones como aseguraste de usar puertos USB 3.0, formatos Ext3 y Ext3 en lugar de FAT o NTFS, editar el GRUB, etc, sin embargo esto a veces no basta.

El origen del problema es por un lado, un bug del kernel de Linux que no puede detectar correctamente la velocidad de las unidades USB y por otro la calidad de los pendrives que tienen una baja velocidad de escritura, en comparación con la velocidad de lectura de los discos de donde se copian datos.

Básicamente, el problema es que los datos son leídos en origen más rápido de lo que el pendrive puede escribir saturando los chips del pendrive, la solución que encuentre es limitar temporalmente la velocidad de escritura.

Existen algunas soluciones que permiten hacer esta limitación permanente e independiente del proceso que realiza la copia, sin embargo, es algo que a mi no me interesa, ya que me afectaría la copia a cualquier dispositivo USB y lo cierto que no todos los pendrives presentan este problema, solo los que baja velocidad y de limitarlo de manera general me afectaría a todos los pendrives y discos externos USB

La solución que encuentre copiar los archivos con rsync solo en los casos que el pendrive me genere problemas y limitando la velocidad con el parámetro bwlimit

Por ejemplo en mi caso el pendrive Kinston de 128 GB tiene una tasa de escritura de 10 Mb/s por lo que decidí limitar la copia a 9 MB/s de la siguiente forma:

rsync -av --bwlimit=1000 /ruta/origen/ /ruta/destino/

Sino han usado antes rsync algunos otros parámetros que pueden ser de utilidad son:

rsync -av --bwlimit=1000 --delete --stats -h --progress /ruta/origen/ /ruta/destino

Una explicación rápida de los parámetros aparte de bwlimit son, stats para mostrar estadísticas al final de la copia, -h para mostrar los tamaños en formato de KB, MB y GB por ejemplo en lugar de bytes predeterminados,  progress para ver algunos datos adicionales durante la copia, como por ejemplo la velocidad de escritura y porcentaje de avance, y por último el parámetro delete que es útil para eliminar de destino los archivos que no existen en el origen y asi crear copias espejo.

Conclusión

Sin dudas no es una solución definitiva, sin embargo, tiene la ventaja de permitir la copia sin mayores problemas y sin afectar el resto de los dispositivos que pudiéramos llegar a necesitar usar en el día a día o en el futuro.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.