Auf USB-Stick kopieren wirklich langsam?

45

Wenn ich Dateien auf das USB-Gerät kopiere, dauert es viel länger als in Windows (dasselbe USB-Gerät, derselbe Anschluss), es ist schneller als USB 1.0-Geschwindigkeiten (1 MB / s), aber viel langsamer als USB 2.0-Geschwindigkeiten (12 MB / s). Das Kopieren von 1,8 GB dauert über 10 Minuten (es sollte <3 Minuten sein). Ich habe zwei identische SanDisk Cruzer 8 GB-Sticks und bei beiden habe ich das gleiche Problem. Ich habe eine super talentierte 32GB USB SSD im benachbarten Port und sie arbeitet mit der erwarteten Geschwindigkeit.

Das Problem, das ich anscheinend in der GUI sehe, ist, dass der Fortschrittsbalken fast augenblicklich auf 90% wechselt, ein wenig langsamer auf 100% abläuft und dann 10 Minuten dort hängt. Das Unterbrechen des Kopiervorgangs an dieser Stelle scheint zu einer Beschädigung am hinteren Ende der Datei zu führen. Wenn ich auf den Abschluss warte, ist der Kopiervorgang erfolgreich.

Irgendwelche Ideen? Dmesg-Ausgabe unten:

[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access     SanDisk  Cruzer           1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290]  sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk
Eloff
quelle
Linux verschiebt Schreibvorgänge, um andere Aufgaben schneller ausführen zu können. Nur eine Vermutung, versuchen Sie zu laufen syncund sehen Sie, ob es den Prozess nicht beschleunigt. <- ungetestet aber möglich
RobotHumans
Das macht keinen Sinn, dass es für einen USB-Typ aufgeschoben wird, für einen anderen jedoch nicht. Außerdem erinnere ich mich an Linux-Aufrufe, die alle 30 Sekunden synchronisiert werden oder so? Könnte veraltet sein. Ich gehe davon aus, dass dies eine Art Treiber- oder Kompatibilitätsproblem ist, da es vom Gerätetyp abhängt.
Eloff
Die Schnelligkeit anderer USB-Sticks steht nicht in Frage. Wenn es so wäre, hätte ich vorgeschlagen, bei hdparm nachzuschauen. Es ist also sinnvoll, wenn Sie es aus der Perspektive von jemandem betrachten, der Ihre gesamte
Konfiguration
"Ich habe eine 32-GB- USB- SSD mit Super-Talent im benachbarten Port und sie funktioniert mit den erwarteten Geschwindigkeiten." es war da drin, aber gut versteckt, das gebe ich zu :) Also, worauf spielst du bei HDParm an?
Eloff
Okay, SSD und Flash-Speicher sind SO nicht dasselbe. Aber hdparm ist ein Hilfsprogramm, mit dem Sie die Zugriffs- / Schleuderdrehzahl für das Laufwerk manuell
einstellen können

Antworten:

29

Warum ist das Kopieren auf mein USB-Laufwerk unter Linux so langsam (und unter Windows schneller)?

Begründung 1. Datei - Caching kann schreibt machen scheinen langsamer oder schneller

Das Problem, das ich anscheinend in der GUI sehe, ist, dass der Fortschrittsbalken fast augenblicklich auf 90% wechselt, ein wenig langsamer auf 100% abläuft und dann 10 Minuten dort hängt.

Eine Sache, die Sie verstehen müssen, ist das Zwischenspeichern von Dateien. Linux (und Windows) verwenden ansonsten "leeren" RAM, um Lese- / Schreibvorgänge zwischenzuspeichern und sie bei nachfolgenden Zugriffen zu beschleunigen. Das Zwischenspeichern von Kopiervorgängen auf langsame Geräte führt zu dem angezeigten Verhalten: Die "schnelle Fertigstellung" schreibt tatsächlich in den Cache und wird dann verlangsamt und angehalten, da das tatsächliche Leeren der Daten im Cache (Synchronisierung) auf das langsame Gerät erfolgt sehr lange dauern. Wenn Sie zu diesem Zeitpunkt abbrechen, sind die Daten beschädigt (wie Sie bemerkt haben), da die Synchronisierung nie abgeschlossen wurde.

Solche Kopiervorgänge in Windows scheinen möglicherweise schneller zu sein (einschließlich der gemeldeten MB / s-Geschwindigkeiten), da Windows manchmal nicht auf die Synchronisierung wartet und den Auftrag für abgeschlossen erklärt, sobald die Daten in den Cache geschrieben werden.

Grund 2. Das Schreiben vieler Dateien, insbesondere kleiner, ist langsam

So kopieren Sie 1,8 GB

Aufgrund der Funktionsweise von Flash-Speicher und Dateisystemen wird beim Schreiben sehr großer Dateien der schnellste Durchsatz (Geschwindigkeit) erzielt. Das Schreiben vieler kleiner Dateien oder auch gemischter Daten, die mehrere kleine Dateien enthalten, kann den Prozess erheblich verlangsamen. Dies betrifft auch Festplatten, jedoch in geringerem Maße.

Grund 3. Die Schreibgeschwindigkeiten eines USB-Sticks und einer SSD können nicht verglichen werden

Ich habe eine super talentierte 32GB USB SSD im benachbarten Port und sie arbeitet mit der erwarteten Geschwindigkeit.

  • Ein Garten-USB-Stick besteht normalerweise aus Flash-Speicherchips, die seriell (sequentiell) beschrieben werden und keinen eigenen Cache haben.

  • Eine SSD hingegen enthält einen Controller, der parallel auf die Flash-Speicherchips schreibt und den Durchsatz über den USB-Stick um den Faktor 2 oder mehr erhöht.

    • Wenn Ihre 32-GB-SSD 4x 8-GB-Chips hätte, wäre sie bei jedem Schreibvorgang immer noch 4x schneller als der USB-Stick.
    • Die SSD enthält auch einen RAM-Cache (wie Festplatten), sodass eingehende Daten schnell im Cache gespeichert und dem Betriebssystem mitgeteilt werden können, dass sie fertig sind, während diese Daten tatsächlich in den Flash-Speicher geschrieben werden müssen.
  • Bei einer großen Datei wären Ihre 32 GB mit der von uns angenommenen 4x-Struktur also 4x so schnell. Bei vielen kleinen Dateien wäre es 10-mal oder schneller, da sie intelligent im Cache gespeichert werden könnten.


Zusammenfassend lässt sich sagen , dass das Kopieren von Dateien auf USB-Sticks unter Linux möglicherweise langsamer verläuft. Ist es tatsächlich langsamer wegen eines Hardware- / Treiberproblems oder was auch immer ....

Richtiger Vergleich der Schreibgeschwindigkeiten zwischen Linux und Windows

  • Vergessen Sie zuallererst die SSD wegen Grund 3. Es ist wie Orangen und Äpfel.
  • Um die Auswirkungen von Grund 1 (Caching) und Grund 2 (kleine Dateien) zu negieren, müssen Sie mit einer einzigen großen Datei testen, die größer ist als der RAM-Speicher des Testsystems.
  • Unter Linux können Sie es mit erstellen dd if=/dev/urandom of=largetest bs=1M count=7500, wodurch Sie eine 7500 MB große Testdatei erhalten. Angenommen, Ihr System hat weniger als 4 GB RAM, dann ist es gut genug. Kopieren Sie das auf einen frisch formatierten 8-GB-Sandisk-Stick und legen Sie die Zeit fest.
  • Starten Sie Windows neu und kopieren Sie es largetestvom USB-Stick auf Ihre Festplatte. Starten Sie erneut (um es aus dem Cache zu entfernen). Formatieren Sie dann den USB-Stick (dasselbe VFAT / FAT32!) Und kopieren Sie ihn largetestvon der Festplatte auf den Stick.
  • Wie vergleichen sich die Zeiten?
ish
quelle
2
cc: @Eloff Re Grund 1 : Ja, die Cache-Synchronisierung kann sich zweifellos auf die offensichtlichen Schreibzeiten auswirken. Aber würde Cache alleine erklären, warum es dort 10 Minuten hängt ?? Ich denke, wir brauchen mehr Details von OP. Zu Grund 2 : Warum bestand diese Übertragung Ihrer Meinung nach aus vielen kleinen Dateien? Ich glaube nicht, dass das OP Details zu dieser 1,8-GB-Übertragung liefert, oder? Zu Grund 3 : Ja, SSD ist ein anderes Biest. Es wäre auch wahrscheinlich über SATA und nicht USB angeschlossen. Ich denke, das OP hat einfach falsch gesprochen und einen USB-Stick als SSD bezeichnet. Aber auch hier gibt es keine Möglichkeit, es zu wissen, es sei denn, wir erhalten mehr Details vom OP.
irrational John
2
Diese Antwort ignoriert offenbar, wie die Frage formuliert wurde. Die Frage spricht eindeutig von einer großen Datei und der Tatsache, dass eine Unterbrechung des Kopiervorgangs zu einer beschädigten Datei führt.
Zrajm
4
@zrajm das stimmt. Für Leute wie mich, die das gleiche Problem haben, ist dies jedoch sehr hilfreich.
Pithikos
Wie kann dieses Caching-Verhalten dann deaktiviert werden?
Aminu Kano,
7

Ich habe die Fehlerbehebung gefunden, habe nur die Bereitstellung aufgehoben, das Laufwerk entfernt und sudo modprobe ehci_hcdim Terminal ausgeführt. Fügen Sie Laufwerk und Agian ein, sudo modprobe ehci_hcdwenn ich das Laufwerk einsetze und wow 20 / mbs dachte, ich würde teilen. Hoffe, ich muss es nicht jedes Mal tun ... aber es ist nicht zu schwer ...

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235 sagt, dass sie den Fehler behoben haben.

DJ Radio
quelle
Ernsthaft?? Dieser Fehlerbericht stammt aus dem Dezember 2007 und bezieht sich auf Ubuntu gutsy 7.10. (FYI: @MarcoCeppi)
irrational John
3
@irrationalJohn Ich habe die Antwort nicht gegeben, ich habe sie nur aufgeräumt. Zweitens: Nur weil ein Fehlerbericht alt ist, heißt das noch lange nicht, dass er nicht mehr gültig ist. Es wird nach diesem
Marco Ceppi
@MarcoCeppi Ja, ich kenne dich nur bearbeitet. Deshalb habe ich " FYI: " vorangestellt . Ich dachte, wenn Sie es bearbeitet haben, sind Sie vielleicht (oder vielleicht auch nicht ) interessiert. Ich dachte mir, wenn es dir egal wäre, würdest du den Hinweis einfach ignorieren. Was einen alten Fehlerbericht betrifft, der immer noch relevant ist ... Vor über 4 Jahren und ich denke, mindestens 8 (?) Veröffentlichungen später? Für einen Leistungsfehler? Sicher, es mag möglich sein, aber es ist nicht der erste Ort, an dem ich nachsehen würde. FWIW.
irrational John
7

Ich denke, die Chancen sind sehr gering, dass es sich um ein Hafenproblem handelt. Es ist wahrscheinlicher, dass ein Problem mit LINUX (oder der Linux-Konfiguration) vorliegt - googeln Sie herum und Sie werden Tausende von Problemberichten über langsames USB in Linux / Ubuntu finden. Für mich ist es fast ein Showstopper für Linux - ich habe jetzt ein Ubuntu 12.04 LTS und habe immer noch dieses Problem (also verwende ich lieber das Win7-Setup - hauptsächlich / nur deswegen). Dieses Problem (oder etwas mit ähnlichen Symptomen) gibt es seit einigen Jahren anscheinend nicht mehr. Und in dieser Zeit habe ich mehrere physische PCs mit verschiedenen Ubuntu-Versionen (Standardkonfiguration) und 2-3 verschiedenen USB-Sticks ausprobiert ....

Peter
quelle
5

Nur umountdas Gerät, wenn es bereits automatisch gemountet wurde, und manuell gemountet /mnt/foldername.

In meinem Fall,

umount /media/usb0
mount /dev/sdb1 /mnt/sam

Danach kommt es sehr schnell zurecht.

msnfreaky
quelle
Dies scheint zusammen mit, rsyncanstatt cpden Trick zu tun.
Irfan
19
Dies machte keinen Unterschied für meine Situation. Auch ist dies keine Lösung ohne eine Theorie, warum dies einen Unterschied machen soll.
LondonRob
@Irfan Nein, rsync verlangsamt sich auch ...
sergzach
3

Es ist 2019 und ich habe immer noch das gleiche Problem. Also dachte ich, ich suche im Internet nach einer Lösung. Ich fand die folgende Seite, die eine vorschlägt: https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f

Es sagt:

Führen Sie die folgenden Befehle in einer Konsole aus, um festzustellen, ob das Problem dadurch behoben wird. Möglicherweise müssen Sie sudo suzuerst die erforderliche Berechtigung haben.

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Wenn dies funktioniert, können Sie diese Änderung auch nach einem Neustart beibehalten, indem Sie die beiden Zeilen am Ende Ihrer /etc/rc.localDatei einfügen.

Für mich hatte es folgenden Effekt:

Das vorherige Kopieren großer Dateien auf ein USB-Laufwerk begann sehr schnell (z. B. 60 MB / s) und wurde immer langsamer (<10 MB / s), bis es so aussah, als würde es niemals beendet werden.

Jetzt fängt es langsamer an, wird aber immer schneller und endet früher als zuvor. Es scheint also das Problem zu "lösen" oder zumindest einen positiven Effekt zu haben.

Jenny O'Reilly
quelle
1

Wenn Sie zu einem USB 3.0 wechseln, werden Sie von 1 MB / s auf 5-8 MB / s steigen. Ich wechsele zu einem 3.0 USB PCI und einer externen HD und habe nicht zurückgeschaut.

Geisterlogger
quelle
1

Stellen Sie in / etc / mtab fest, dass das Gerät mit der Option "flush" gemountet wurde?

Wenn ja, könnte dies die Ursache des Problems sein (es war für mich). Hängen Sie das Gerät einfach aus und wieder ein, es sollte nicht standardmäßig eingestellt sein.

GarfieldElCat
quelle
Die Spüloption ist standardmäßig eingestellt. Wie kann dies gestoppt werden?
Ben Lutgens
@ Ben Lutgens - Ja, Sie können Ihren eigenen Eintrag in / etc / fstab einfügen, der keine Flush-Optionen enthält. Verwenden Sie sudo blkid, um die relevante Geräte-UUID zu finden, und geben Sie einen Eintrag wie UUID = "Ihre Geräte-UUID hier" ein. Ändern Sie die Benutzer-ID und die Benutzer-ID so, dass sie mit der Benutzer-ID und der Gruppen-ID des normalen Benutzers übereinstimmen, den Sie verwenden (wie von getent passwd <Ihr Benutzer> ermittelt).
A.Danischewski
Wenn ich das mache, ist alles, was sich ändert, dass ich keinen Fortschrittsbalken mehr für das Kopieren bekomme und das Kopieren nur dann wirklich zu starten / zu beenden scheint, wenn ich versuche, das Gerät abzuhängen, und es sagt mir, dass der Stecker nicht abgezogen wird, bis der Vorgang abgeschlossen ist ".
Jenny O'Reilly
0

Ich hatte auch einige Probleme mit der Übertragungsrate auf einer externen WD-Festplatte, nachdem ich sie in einem Windows-SO geöffnet hatte, benutzte ich immer LINUX, danach betrug die Übertragungsrate etwa 1,5 MB / s, als ich die externe Festplatte abmeldete, die dmesg lief, da sie war sagte, dass sdb1 unversehens unmontiert war, führte ein fsck aus, das ein paar reparaturen durch und danach wieder 20mb / s transferrate beim kopieren von sda auf externe festplatte. fsck ist immer ein Risiko, wenn Sie Daten haben, aber es hat bei mir ohne Datenverlust funktioniert.

Anymamundy
quelle
-2

Ich hatte auch dieses Problem, aber ich benutze den Befehl cp und Sie aktualisieren Ihren USB-Stick in Sekunden;

cp -r -u /home/user/Muziek/ /media/user/Audiousbsti
cp -r -u /home/user/Muziek/ /media/user/4F49-4A65/

Ich denke, es ist eine sehr späte Antwort, aber es ist immer noch offen.

Bart
quelle
-3

Okay, ich hatte drei Tage lang das gleiche Problem und wie ich es geschafft habe, meine 1-TB-Festplatte mithilfe von rsync zu sichern, weiß ich, dass es für das Sichern verwendet wird, aber es hat den Job erledigt, auch wenn ich große Dateien übertrage, auf die ich es verwende mach diesen Job. Wenn Sie es mit einer GUI verwenden möchten, empfehle ich die Installation von Grsync, einer grafischen Version von rsync, da rsync auf dem Terminal ausgeführt wird.

Hoffe das hat geholfen

Perfekt
quelle