sábado, 14 de abril de 2018

Linux: Velocidad muy lenta al escribir archivos grandes en discos NTFS

¿Tienes problemas de rendimiento de memorias USB en tu distribución de Linux?
Recientemente observé que una memoria flash que funcionaba perfectamente en Windows no lo hacía tan bien en Linux Mint cuando se trataba de copiar archivos con un tamaño grande.
Con otras memorias USB no tenía problema y esta en cuestión no estaba dañada pues en Windows funcionaba correctamente.
La única cosa que difería de otras USB que tenía es que esta estaba particionada con formato NTFS.
Buscando en Internet esta página me dio alguna pista.


El problema es debido a cómo se montan las particiones NTFS en Linux. NTFS es originario de Windows y por algún motivo, no se comporta con rendimiento óptimo en Linux debido al tamaño de los bloques haciendo que el uso de CPU pueda sea elevado y el rendimiento de la escritura sea muy bajo con archivos de gran tamaño.

La solución pasa por indicar explícitamente que queremos trabajar con un tamaño de bloque mayor que el que NTFS tiene por defecto y eso lo podemos hacer montando la unidad con la opción big_writes. Esto significa, no obstante, que tenemos que desmontar la unidad si ya la teníamos montada.

El proceso sería el siguiente:

  • Listamos los dispositivo montados: De esta forma tenemos que identificar el punto de montaje de nuestra unidad. Eso lo hacemos con el comando:

     lsblk



  • Desmontamos la unidad deseada: En este caso se trata de la memoria USB sdb montada en /media/imahgin/imahgin 

sudo umount /media/imahgin/imahgin


  • Lo montamos con la opción big_writes: Para ello primero creamos una carpeta donde montaremos la unidad y después la  montaremos con la opción big_writes


sudo mkdir /media/imahgin/imahgin
sudo mount -o big_writes /dev/sdb1 /media/imahgin/imahgin

Si listamos las particiones con el comando mount nos aparecerá así:
/dev/sdb1 on /media/imahgin/imahgin type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)


A partir de ese momento podemos trabajar normalmente con la unidad y podremos ver como al copiar archivos de gran tamaño, el rendimiento no cae.
Cuando queramos desmontarlo, podemos hacerlo desde el navegador de nuestro Linux o por consola como ya hicimos al principio borrando después el punto de montaje:

sudo umount /media/imahgin/imahgin
sudo rm -r /media/imahgin/imahgin/

Si bien durante la copia no hay merma de rendimiento, hay que tener en cuenta que estos dispositivos utilizan una memoria caché intermedia que ayuda a aumentar el rendimiento. Al desmontarlo esta caché se volcará a la unidad motivo por el cual podrá tardar unos segundos en función del tamaño de los datos a grabar.

Si queremos que estos cambios se realicen de forma automática cada vez que insertamos el disco, debemos editar la configuración en el archivo /etc/fstab. También podemos hacerlo desde la utilidad de discos del sistema operativo. Si ejecutamos Discos nos aparecerán los discos detectados en nuestro equipo:



Seleccionamos el disco en cuestión y la partición donde se encuentran los datos y que queremos montar de esta forma especial, pulsamos en el icono de herramientas y seleccionamos Editar las acciones de montaje:


En esta pantalla deberemos deseleccionar la primera opción -Opciones de montaje automático- y añadir big_writes como se aprecia en la imagen.
La próxima vez que insertéis la unidad, este cambio se tomará en cuenta.

Comentarios
0 comentarios
Para Comentar Elige el Sistema de Comentario de tu Agrado:
Comentarios Comentarios Comentarios