Sehr langsam bei USB-E / A

496
tmsg

(Haftungsausschluss: Linux noob wechselt von Windows 7 zu Linux.) Ich habe einen Dual-Boot-PC mit Core i5-Prozessor der dritten Generation (4 echte Kerne), 12 GB RAM und einer 240 GB Samsung EVO850 SSD. Dieses System ist nicht das schnellste unter der Sonne, aber es ist auch kein Schlupf und normalerweise ist alles glatt und fließend und brav, sowohl unter Windows 7/64 als auch unter der von mir verwendeten Debian-Variante.

Ich habe jedoch gerade (mit rsync -aW) ein ziemlich großes Verzeichnis von .jpg-Dateien (~ 50GB) von der SSD auf einen USB3.0-Stick kopiert. Der Stick wurde als USB3 erkannt. Ich habe das mit lsusb überprüft und obwohl die Schreibgeschwindigkeit ~ 90 MB / s beträgt, schien die Kopie nicht viel schneller als 25 MB / s zu sein. Beide Partitionen sind NTFS-formatiert, keine Komprimierung.

Das eigentliche Problem ist jedoch, dass der PC während des Kopiervorgangs fast unbrauchbar wurde. Fast jede Browseraktivität (Palemoon), wie das Laden einer neuen Seite oder auch nur das Hinzufügen eines Lesezeichens, führte zu einem vollständigen Stillstand von 30, 40, 50 Sekunden. Ich überprüfte in einem Terminalfenster mit htop, keiner der 4 Kerne hatte mehr als 5% Last über einen Zeitraum von 10 Sekunden, der Speicherverbrauch lag deutlich unter 1 GB. Im selben Terminal dauerte ein df-Befehl mehr als 40 Sekunden, und manchmal war auch die Befehlszeile 5 oder 10 Sekunden lang tot.

Das sieht nach einem sehr schlimmen Fall eines schwerwiegenden E / A-Engpasses irgendwo aus ... also habe ich das gleiche Szenario wiederholt und den Rsync-Prozess mit einem Ionice-Modus des Leerlaufs versehen, und es wäre so nett wie möglich. Dies half ein wenig, aber der PC ist noch lange nicht benutzbar.

Ich habe dieselben oder sehr ähnliche Aufgaben mit der gleichen Hardware unter Windows 7/64 gemacht und mache sie noch immer, und obwohl das System eindeutig nicht so scharf ist wie unter Null-Last, bleibt es definitiv auf der nutzbaren Seite.

Ich hoffe, es gibt einen besseren Weg, um $ BIG_DATA auf einen USB-Stick zu kopieren als das ... weil ich eigentlich lieber in Windows gebootet hätte, die Kopie dort machen und dann in Debian neu starten würde.

Hat jemand ein paar gute Ideen, wie ich die Dinge flüssiger machen kann? (Es ist mir egal, ob die Kopie einige Minuten länger dauert, solange sie im Hintergrund läuft und ich mehr oder weniger normal im Vordergrund arbeiten kann.)

4

1 Antwort auf die Frage

5
harrymc

Rsync bringt die Festplatten auf Höchstgeschwindigkeit und Sie sollten nicht erwarten, dass etwas anderes reagiert. Das Laden von Programmen erfordert einen Zugriff mit den Laufwerken, und selbst das Auslagern ist langsam.

Lösungen könnten sein:

  • Verwenden Sie die --drop-cacheOption in rsync (nicht in allen Versionen verfügbar).
  • Verwenden Sie nocache, der in einigen Distributionen bereits als Paket verfügbar ist
  • Riesige Seiten sind unter Linux zwar immer noch ein Problem, lassen sich jedoch leicht durch Ausführen watch -n 5 syncoder durch fortgeschrittenere radikale Lösungen lösen , die nichts für Noob sind
  • Wenn Sie Ihre Dateisysteme mit noatimein /etc/fstabeinhängen, werden Zeitstempel-Schreibvorgänge reduziert, wenn Sie über eine riesige Anzahl kleiner Dateien verfügen
  • Einige andere Methoden, die auch gutes Wissen, Verständnis (und Backup) erfordern, sind:

    # hopefully better multitasking I/O performance echo 20 > /proc/sys/vm/dirty_ratio  # Try to keep at least 100MB of free RAM at all times echo 100000 > /proc/sys/vm/min_free_kbytes  # Default 100 - try more aggressively to reclaim inodes, etc from cache echo 160 > /proc/sys/vm/vfs_cache_pressure 
"Rsync bringt die Festplatten auf Höchstgeschwindigkeit ..." Also ist Rsync vielleicht das falsche Werkzeug für diese Art von Arbeit? Und danke für die anderen Hinweise, ich werde einen Blick darauf werfen. tmsg vor 5 Jahren 0
In meinem lokalen rsync ist der Patch "--drop-cache" nicht enthalten. Der Nocache scheint jedoch erheblich zu helfen, auch wenn die Maschine immer noch weniger "fließend" erscheint als unter Windows. Schwer zu sagen, ob eine der anderen Optionen einen erkennbaren Effekt hat ... Vielen Dank für Ihre Antwort. tmsg vor 5 Jahren 0
Die I / O-Systeme von Windows und Linux unterscheiden sich grundlegend, daher gibt es Unterschiede. In den meisten Fällen gewinnt Linux an Geschwindigkeit, aber nicht an allen. harrymc vor 5 Jahren 0
Ich nehme dein Wort dafür: - / Ich habe auch transparent_hugepage = never zu meinen Kernel-Optionen hinzugefügt ... Ich werde das Verhalten eine Zeitlang überwachen, um zu sehen, ob dies einen nachteiligen Effekt hat. Nach allem, was ich gelesen habe, könnte dies auf jeden Fall eine gute Idee für einen Nicht-Server-PC sein. tmsg vor 5 Jahren 0