La vitesse d'écriture NTFS est très lente (<15 Mo / s) sur Ubuntu

Lorsque vous copiez des fichiers volumineux ou que vous testez une fonction d'écriture avec dd , la vitesse de gravure maximale que je peux obtenir est d'environ 12 à 15 Mo / s sur les lecteurs à l'aide du système de fichiers NTFS. J'ai testé plusieurs disques (tous connectés à l'aide de SATA) qui ont toutes les voix écrites de 100 Mo / s + sur Windows ou lorsqu'ils sont formatés avec ext4, ce n'est pas un problème d'alignement ou de lecteur.

top affiche une utilisation élevée du processeur pour le processus mount.ntfs .

Processeur dual core AMD (2,2 GHz)
Version du noyau: 3.5.0-23-generic
Ubuntu 12.04
Version ntfs-3g : 2012.1.15AR.1 (version par défaut Ubuntu) et 2013.1.13AR.2

Comment puis-je réparer la lecture par écrit?

Un post précédent était sur la bonne voie avec la référence fournie:

Peut-être vérifiez-vous ici des idées sur ce qui pourrait l'être. http://www.tuxera.com/community/ntfs-3g-faq/#slow

La question originale mentionne le problème avec les transferts de fichiers importants. Dans mon expérience de copier des fichiers multimédias ou de faire des sauvegardes, l'option clé dans la FAQ ci-dessus était:

Solution de contournement: l'utilisation de l'option de montage "big_writes" réduit généralement l'utilisation de la CPU, à condition que le logiciel demandant les écritures supporte de gros blocs.

Il suffit d'ajouter l'option big_writes, par exemple

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

Mon Linux NAS avec une CPU à faible consommation gère maintenant les écritures de fichiers étendues NTFS environ trois fois plus rapidement. Il s'est amélioré de ~ 17MB / s à 50MB / s +. Même vu, il regarde environ 90 Mo / s dans iotop qui est probablement près de la capacité des disques externes (un disque dur 2,53 USB3).

À partir de la page manuelle 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). 

Notes de clôture:

  • L'option big_writes ne sera probablement pas utile pour un benchmark d'écriture aléatoire 4K 😉
  • Alors que Tuxera semble réserver le pilote Pro NTFS pour les partenaires du système intégré, Paragon offre un alternatif gratuit pour un usage personnelNTFS pilote appelé NTFS et HFS pour Linux 9.0 Express et une version professionnelle. Je ne suis cependant pas responsable de ce produit et lorsque j'ai essayé une version précédente (v8.5), je ne pouvais pas l'utiliser pour ma version Linux Kernel à l'époque.

Peut-être vérifiez-vous ici des idées sur ce qui pourrait l'être. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Cela ressemble un peu aux «vieux jours» lorsque le fichier io n'utilise pas DMA par défaut. Il est peu probable ces jours-ci, mais le BIOS utilise-t-il l'émulation IDE pour les disques SATA? Parce que s'il émule IDE, il peut également être en train d'émuler le mode non-DMA.

Un autre ralentissement potentiel est si la compression des fichiers ntfs. La compression est-elle activée sur le dossier sur lequel vous écrivez? Si c'est le cas, cela entraînera également la compression de tous les nouveaux fichiers dans ce dossier.

Il s'agit d'un fil ancien, mais pour les personnes qui cherchent une solution au même problème: avez-vous activé cpuspeed? Ntfs-3g a une faim de CPU et, dans mon cas, cpuspeed a détecté à tort une faible charge pour les processus avec beaucoup d'attente d'IO, éventuellement épuisant le noyau et affamant le conducteur.

Essayez de désactiver cpuspeed (si, par exemple, il fonctionne en tant que service) et testez à nouveau.

Ce correctif améliore les performances écrites pour les périphériques intégrés: https://www.lysator.liu.se/~nietzsche/ntfs/