NTFS-Schreibgeschwindigkeit unter Ubuntu sehr langsam (<15 MB / s)

18

Wenn Sie große Dateien kopieren oder die Schreibgeschwindigkeit testen dd, kann ich auf Laufwerken, die das NTFS-Dateisystem verwenden, eine maximale Schreibgeschwindigkeit von 12-15 MB / s erreichen. Ich habe mehrere Laufwerke (alle mit SATA verbunden) getestet, die unter Windows oder bei der Formatierung mit ext4 Schreibgeschwindigkeiten von über 100 MB / s erreicht haben. Es handelt sich also nicht um ein Ausrichtungs- oder Laufwerksproblem.

topzeigt hohe CPU-Auslastung für den mount.ntfsProzess.

AMD Dual-Core-Prozessor (2,2 GHz)
Kernel-Version: 3.5.0-23-generic
Ubuntu 12.04-
ntfs-3gVersion: sowohl 2012.1.15AR.1(Ubuntu-Standardversion) als auch2013.1.13AR.2

Wie kann ich die Schreibgeschwindigkeit korrigieren?

Zulakis
quelle
Haben Sie versucht, dd mit unformatiertem Laufwerkszugriff zu testen (auf dem Laufwerk oder der Partition, spielt keine Rolle)? Beachten Sie, dass das Testen auf diese Weise das Dateisystem zerstört und alle darauf befindlichen Daten verliert. Die NTFS-Treiber werden vollständig umgangen.
Bob
Ja, ich habe es gerade getan, das Ergebnis ist 149MB/s.
Zulakis
Nur aus Neugier muss ich fragen, ob dieses Laufwerk eines dieser 4k-Laufwerke ist und ob daher Ihr Dateisystem möglicherweise irgendwie nicht ausgerichtet ist ?!
Waxhead
4
Ich glaube, dass die kostenlose Version von NTFS-3G verkrüppelt ist, sodass 4-KB-Schreibvorgänge ohne Zwischenspeicherung verwendet werden, was zu einer extrem langsamen Schreibleistung auf SSDs und USB-Laufwerken führt. Die Firma hinter dem Treiber schlägt vor, die kommerzielle Version zu kaufen, um eine bessere Leistung zu erzielen. Anscheinend kümmert sich niemand genug darum, die Open-Source-Version tatsächlich zu reparieren (und, falls erforderlich, abzuspalten), da dieses Problem seit der ersten Veröffentlichung von NTFS-3G fast ein Jahrzehnt besteht.
Tronic
1
Mit demselben Ubuntu 2015.04-Laptop habe ich eine externe 320-GB-Festplatte und einen 32-GB-USB-Stick auf NTFS formatiert. Das Kopieren von 2 GB Bildern auf das erste dauerte ewig (geschätzte 6 Stunden nach 30 Minuten), auf das zweite (USB-Stick) dauerte es nur ein oder zwei Minuten. Ich habe keine Einstellungen zwischen den beiden geändert.
Nicolas Raoul

Antworten:

18

Ein vorheriger Beitrag war auf dem richtigen Weg mit der angegebenen Referenz:

Vielleicht können Sie hier nach Ideen suchen, was die Ursache sein könnte. http://www.tuxera.com/community/ntfs-3g-faq/#slow

In der ursprünglichen Frage wird erwähnt, dass das Problem bei großen Dateiübertragungen auftritt. Nach meiner Erfahrung mit dem Kopieren von Mediendateien oder dem Erstellen von Backups lautete die Hauptoption in den obigen FAQ:

Problemumgehung: Die Verwendung der Mount-Option "big_writes" verringert im Allgemeinen die CPU-Auslastung, sofern die Software, die die Schreibvorgänge anfordert, große Blöcke unterstützt.

Fügen Sie einfach die Option big_writes hinzu, z

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

Mein Linux-NAS mit einer CPU mit niedrigen Spezifikationen verwaltet jetzt große NTFS-Dateischreibungen etwa dreimal schneller. Es verbesserte sich von ~ 17 MB / s auf 50 MB / s +. Sogar in iotop ist eine Geschwindigkeit von 90 MB / s zu sehen, was wahrscheinlich in der Nähe der Kapazität externer Laufwerke liegt (eine 2,5-Zoll-USB3-Festplatte).

Von der NTFS-3G-Manpage:

 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).

Schlussbemerkungen:

  • die big_writes Option hilft wahrscheinlich keinem 4K Random Write Benchmark ;-)
  • Während Tuxera anscheinend den Pro-NTFS-Treiber für eingebettete Systempartner reserviert, bietet Paragon einen alternativen, für den persönlichen Gebrauch kostenlosen NTFS-Treiber namens NTFS & HFS für Linux 9.0 Express und eine professionelle Version an. Ich stehe jedoch nicht für dieses Produkt ein, und als ich eine frühere Version (v8.5) ausprobierte, konnte ich sie zu diesem Zeitpunkt nicht für meine Linux-Kernel-Version verwenden.
JPvRiel
quelle
Die Option big_writes hat dazu geführt, dass meine Festplatte von 300kb / s auf 35mb / s gewechselt ist! Vielen Dank!
JosFabre
10 Charaktere haben den Unterschied ausgemacht, vielen Dank!
João Miguel Brandão
big_writeswurde im Jahr 2016 veraltet , aber 3 Jahre später verwenden einige Distributionen immer noch eine noch ältere Version von libfuse.
Dmitry Grigoryev vor
2

Vielleicht können Sie hier nach Ideen suchen, was die Ursache sein könnte. http://www.tuxera.com/community/ntfs-3g-faq/#slow

Dies klingt ein bisschen wie in früheren Zeiten, als die Datei io nicht standardmäßig DMA verwendete. Es ist heutzutage unwahrscheinlich, aber verwendet das BIOS die IDE-Emulation für SATA-Laufwerke? Denn wenn es IDE emuliert, emuliert es möglicherweise auch den Nicht-DMA-Modus.

Eine weitere mögliche Verlangsamung ist die Komprimierung von ntfs-Dateien. Ist die Komprimierung für den Ordner aktiviert, in den Sie schreiben? In diesem Fall werden auch alle neuen Dateien in diesem Ordner komprimiert.

BeowulfNode42
quelle
Wie kann ich testen, ob DMA verwendet wird? Ansonsten habe ich bereits alle Vorschläge auf der Seite ausprobiert.
Zulakis
Ähm, nach dem, was ich gelesen habe, ist DMA nur für IDE-Laufwerke relevant? Ich verwende nur SATA-Laufwerke.
Zulakis
Laut en.wikipedia.org/wiki/Serial_ATA#Transport_layer scheint DMA die einzige Option für SATA zu sein. Finden wir heraus, ob sein BIOS Ide-Emulation verwendet
BeowulfNode42
0

Dies ist ein alter Thread, aber für Leute, die nach einer Lösung für dasselbe Problem suchen: Haben Sie cpuspeed aktiv? ntfs-3g ist CPU-hungrig und in meinem Fall hat cpuspeed fälschlicherweise eine niedrige Auslastung für Prozesse mit vielen E / A-Wartezeiten festgestellt, die schließlich den Kern drosseln und den Treiber hungern lassen.

Deaktivieren Sie cpuspeed (wenn es z. B. als Dienst ausgeführt wird) und testen Sie es erneut.

Irisx
quelle
Wie stelle ich fest, dass cpuspeed aktiv ist? Ist das ein Daemon oder eine Einstellung?
Daniel
0

big_writeswurde als veraltet im Jahr 2016, wird das entsprechende Verhalten immer bei der Verwendung freigegeben libfuseVersion 3.0.0 oder höher. Auf einem modernen Linux-System bedeutet eine schlechte NTFS-Leistung normalerweise Folgendes:

  • Die Festplatte ist fragmentiert
  • Die NTFS-Datenträgerkomprimierung ist aktiviert
  • unzulängliche Befestigungsmöglichkeiten wie sie syncverwendet werden
Dmitry Grigoryev
quelle