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

18

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

topmontre une utilisation élevée du processeur pour le mount.ntfsprocessus.

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

Comment puis-je corriger la vitesse d'écriture?

Zulakis
la source
Avez-vous essayé de tester dd avec un accès brut au lecteur (sur le lecteur ou la partition, peu importe)? Notez que tester de cette façon détruira le système de fichiers et perdra toutes les données qu'il contient. Il contournera entièrement les pilotes NTFS.
Bob
Oui, je viens de le faire, le résultat est 149MB/s.
Zulakis
Juste par curiosité, je dois demander si ce lecteur est l'un de ces lecteurs 4k et si par conséquent votre système de fichiers pourrait ne pas être aligné en quelque sorte?!
Waxhead
4
Je crois que la version gratuite de NTFS-3G est paralysée de sorte qu'elle utilise des écritures de 4 Ko sans mise en cache, ce qui entraîne des performances d'écriture extrêmement lentes sur les SSD et les lecteurs USB. La société derrière le pilote suggère d'acheter la version commerciale pour de meilleures performances. Apparemment, personne ne se soucie suffisamment de corriger (et si nécessaire, de bifurquer) la version open source, car ce problème existe depuis près d'une décennie, depuis la sortie de NTFS-3G.
Tronic
1
Avec le même ordinateur portable Ubuntu 2015.04, j'ai formaté en NTFS un disque dur externe de 320 Go et une clé USB de 32 Go. Copier 2 Go d'images sur la première prenait une éternité (6 heures restantes estimées après 30 minutes), mais sur la seconde (clé USB), cela ne prenait qu'une minute ou deux. Je n'ai changé aucun paramètre entre les deux.
Nicolas Raoul

Réponses:

18

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

peut-être vérifier ici pour des idées sur ce qui pourrait en être la cause. http://www.tuxera.com/community/ntfs-3g-faq/#slow

La question d'origine mentionne avoir remarqué le problème des transferts de fichiers volumineux. D'après mon expérience avec la copie de fichiers multimédias ou la réalisation de sauvegardes, l'option clé dans la FAQ ci-dessus était:

Solution: l'utilisation de l'option de montage «big_writes» réduit généralement l'utilisation du processeur, à condition que le logiciel demandant les écritures prenne en charge les gros blocs.

Ajoutez simplement l'option big_writes, par exemple

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

Mon NAS Linux avec un processeur de faible spécification gère désormais les écritures de gros fichiers NTFS environ trois fois plus rapidement. Il est passé de ~ 17 Mo / s à 50 Mo / s +. Même vu, il regarde à environ 90 Mo / s dans iotop, ce qui est probablement proche de la capacité des disques externes (un disque dur USB3 2,5 ").

Depuis la page de manuel 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 n'aidera probablement pas une référence d'écriture aléatoire 4K ;-)
  • Alors que Tuxera semble réserver le pilote NTFS pro aux partenaires du système intégré, Paragon propose un autre pilote NTFS gratuit pour un usage personnel appelé NTFS & HFS pour Linux 9.0 Express et une version professionnelle. Je ne garantis cependant pas pour ce produit et lorsque j'ai essayé une version précédente (v8.5), je ne pouvais pas le faire fonctionner avec ma version du noyau Linux à l'époque.
JPvRiel
la source
L'option big_writes a fait passer mon disque de 300kb / s à 35mb / s! Merci!
JosFabre
10 personnages ont fait toute la différence, merci beaucoup!
João Miguel Brandão
big_writesa été déconseillé en 2016, cependant, 3 ans plus tard, certaines distributions utilisent toujours une version encore plus ancienne de libfuse.
Dmitry Grigoryev
2

peut-être vérifier ici pour des idées sur ce qui pourrait en être la cause. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Cela ressemble un peu à l'ancien temps où le fichier io n'utilisait pas DMA par défaut. C'est peu probable de nos jours, mais le BIOS utilise-t-il l'émulation IDE pour les disques SATA? Parce que s'il émule l'IDE, il peut également émuler le mode non-DMA.

Un autre ralentissement potentiel est la compression de fichiers ntfs. La compression est-elle activée sur le dossier dans lequel vous écrivez? Si c'est le cas, tous les nouveaux fichiers de ce dossier seront également compressés.

BeowulfNode42
la source
Comment puis-je tester s'il utilise DMA? En dehors de cela, j'ai déjà essayé toutes les suggestions sur la page.
Zulakis
Euh, d'après ce que j'ai lu, le DMA n'est pertinent que pour les disques IDE? J'utilise uniquement des disques SATA.
Zulakis
Selon en.wikipedia.org/wiki/Serial_ATA#Transport_layer, il semble que DMA soit la seule option pour SATA. Permet de savoir si son bios utilise l'émulation d'idées
BeowulfNode42
0

C'est un vieux fil, mais pour ceux qui recherchent une solution au même problème: avez-vous activé cpuspeed? ntfs-3g est gourmand en CPU et dans mon cas, cpuspeed a détecté par erreur une faible charge pour les processus avec beaucoup d'attente d'E / S, finissant par étrangler le cœur et affamer le pilote.

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

irisx
la source
Comment puis-je déterminer que cpuspeed est actif? Est-ce un démon ou un paramètre?
Daniel
0

big_writesa été déconseillé en 2016, le comportement correspondant est toujours activé lors de l'utilisation de la libfuseversion 3.0.0 ou ultérieure. Sur un système Linux moderne, une mauvaise performance NTFS signifie généralement que:

  • le disque est fragmenté
  • La compression de disque NTFS est activée
  • options de montage inadéquates telles que celles syncutilisées
Dmitry Grigoryev
la source