La velocidad de escritura de NTFS es realmente lenta (<15 MB / s) en Ubuntu

18

Al copiar archivos grandes o probar la escritura con dd, la escritura máxima que puedo obtener es de aproximadamente 12-15 MB / s en unidades que usan el sistema de archivos NTFS. Probé varias unidades (todas conectadas usando SATA) que obtuvieron una velocidad de escritura de 100 MB / s + en Windows o cuando se formatearon con ext4, por lo que no es un problema de alineación o unidad.

topmuestra un alto uso de la CPU para el mount.ntfsproceso.

Procesador AMD de doble núcleo (2.2 GHz)
Versión del kernel: versión 3.5.0-23-generic
Ubuntu 12.04
ntfs-3g: tanto 2012.1.15AR.1(versión predeterminada de Ubuntu) como2013.1.13AR.2

¿Cómo puedo arreglar la escritura especial?

Zulakis
fuente
¿Has intentado probar dd con acceso a la unidad sin formato (en la unidad o partición, no importa)? Tenga en cuenta que probar de esa manera destruirá el sistema de archivos y perderá los datos que contenga. Omitirá los controladores NTFS por completo.
Bob
Sí, acabo de hacerlo, el resultado es 149MB/s.
Zulakis
Solo por curiosidad, tengo que preguntar si esta unidad es una de esas unidades 4k y, por lo tanto, si su sistema de archivos podría estar desalineado de alguna manera.
Waxhead
44
Creo que la versión gratuita de NTFS-3G está paralizada, por lo que utiliza 4 escrituras KiB sin almacenamiento en caché, lo que provoca un rendimiento de escritura extremadamente lento en SSD y unidades USB. La compañía detrás del controlador sugiere comprar la versión comercial para un mejor rendimiento. Aparentemente, a nadie le importa lo suficiente como para arreglar realmente (y si es necesario, bifurcar) la versión de código abierto porque este problema ha existido durante casi una década, desde que se lanzó NTFS-3G por primera vez.
Tronic
1
Con la misma computadora portátil Ubuntu 2015.04, formateé a NTFS un disco duro externo de 320GB y una memoria USB de 32GB. Copiar 2GB de fotos a la primera fue tomar una eternidad (quedan 6 horas estimadas después de 30 minutos), pero a la segunda (memoria USB) solo le tomó uno o dos minutos. No cambié ninguna configuración entre los dos.
Nicolas Raoul

Respuestas:

18

Una publicación anterior estaba en el camino correcto con la referencia proporcionada:

quizás revise aquí para obtener ideas sobre lo que podría estar causándolo. http://www.tuxera.com/community/ntfs-3g-faq/#slow

La pregunta original menciona notar el problema con las transferencias de archivos grandes. En mi experiencia al copiar archivos multimedia o hacer copias de seguridad, la opción clave en las preguntas frecuentes anteriores fue:

Solución alternativa: el uso de la opción de montaje "big_writes" generalmente reduce el uso de la CPU, siempre que el software que solicita las escrituras admita bloques grandes.

Simplemente agregue la opción big_writes, por ejemplo

sudo mount -o big_writes /media/<mount_dir> /dev/<device>

Mi NAS de Linux con una CPU de baja especificación ahora gestiona las escrituras de archivos grandes NTFS aproximadamente tres veces más rápido. Mejoró de ~ 17MB / sa 50MB / s +. Incluso lo vi asomarse a unos 90 MB / s en iotop, que probablemente esté cerca de la capacidad de las unidades externas (un HDD USB3 de 2.5 ").

Desde la página de manual de NTFS-3G:

 big_writes
              This option prevents fuse from splitting write buffers  into  4K
              chunks,  enabling  big  write buffers to be transferred from the
              application in a single step (up to some system limit, generally
              128K bytes).

Notas de cierre:

  • la opción big_writes probablemente no ayudará a un punto de referencia de escritura aleatoria 4K ;-)
  • Si bien Tuxera parece estar reservando el controlador NTFS pro para los socios del sistema integrado, Paragon ofrece un controlador alternativo gratuito para uso personal llamado NTFS y NTFS para Linux 9.0 Express y una versión profesional. Sin embargo, no respondo por este producto y cuando probé una versión anterior (v8.5), no pude hacer que funcionara con mi versión de Linux Kernel en ese momento.
JPvRiel
fuente
¡La opción big_writes hizo que mi disco pasara de 300kb / sa 35mb / s! ¡Gracias!
JosFabre
10 personajes hicieron una gran diferencia, muchas gracias!
João Miguel Brandão
big_writesfue desaprobado en 2016, sin embargo, 3 años después, algunas distribuciones todavía usan una versión aún más antigua de libfuse.
Dmitry Grigoryev
2

quizás revise aquí para obtener ideas sobre lo que podría estar causándolo. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Esto suena un poco como los 'viejos tiempos' cuando el archivo io no estaba usando DMA por defecto. Es poco probable en estos días, pero ¿está BIOS usando emulación IDE para unidades SATA? Porque si está emulando IDE, también puede estar emulando el modo no DMA.

Otra posible desaceleración es si la compresión de archivos ntfs. ¿Está habilitada la compresión en la carpeta en la que está escribiendo? Si es así, también se comprimirán los archivos nuevos en esa carpeta.

BeowulfNode42
fuente
¿Cómo puedo probar si está usando DMA? Aparte de esto, ya he probado todas las sugerencias en la página.
Zulakis 01 de
Uhm, por lo que he leído, ¿DMA solo es relevante para las unidades IDE? Solo estoy usando unidades SATA.
Zulakis 01 de
Según en.wikipedia.org/wiki/Serial_ATA#Transport_layer , parece que DMA es la única opción para SATA. Vamos a averiguar si su BIOS está utilizando emulación de ide
BeowulfNode42 02 de
0

Este es un hilo viejo, pero para las personas que buscan una solución al mismo problema: ¿tiene cpuspeed activo? ntfs-3g necesita mucha CPU y, en mi caso, cpuspeed detectó por error una carga baja para procesos con muchas esperas de E / S, eventualmente estrangulando el núcleo y matando de hambre al controlador.

Intente deshabilitar cpuspeed (si, por ejemplo, se está ejecutando como un servicio) y pruebe nuevamente.

irisx
fuente
¿Cómo determino que cpuspeed está activo? ¿Es eso un demonio o un escenario?
Daniel
0

big_writesfue desaprobado en 2016, el comportamiento correspondiente siempre está habilitado cuando se utiliza la libfuseversión 3.0.0 o posterior. En un sistema Linux moderno, el bajo rendimiento de NTFS generalmente significa que:

  • el disco está fragmentado
  • La compresión de disco NTFS está habilitada
  • opciones de montaje inadecuadas como las que syncse usan
Dmitry Grigoryev
fuente