Langsame Leistung beim Kopieren von Dateien auf und von USB-Geräten

11

Wenn ich Dateien auf und von USB-Geräten (Kamera, Festplatte, Speicherkarte) kopiere, wird mein System sehr langsam. Wenn ich beispielsweise ein Fenster schließen möchte, bewege ich die Maus, aber es dauert mindestens 2 Sekunden, bis sich der Mauszeiger bewegt. Wenn ich endlich den Cursor über das x bewege und darauf klicke, passiert 10+ Sekunden lang nichts. Ich habe dies mit deaktivierten Desktop-Effekten versucht, aber das Problem besteht weiterhin.

Software: Linux Mint 9 KDE Hardware:

  • Asus SLI Motherboard
  • NVidia 6600 GPU
  • 2 GB RAM
  • 2 GB Swap
  • AMD Athlox X2 @ 3800+

Für mich sollte diese Hardware keine Probleme beim Ausführen dieser Software haben und erst, wenn ich Dateien über USB kopiere. Wo soll ich anfangen, dies herauszufinden? Ich denke, der Grafiktreiber könnte Teil des Problems sein, aber ich weiß es nicht genau.

John
quelle
2
Überprüfen Sie, ob die USB-Anschlüsse USB 2.0-fähig sind. Einige USB-Anschlüsse, insbesondere an der Vorderseite von Desktops, waren früher nur USB 1.0. Überprüfen Sie auch, ob Ihre BIOS-Einstellungen für die USB-Leistung optimal sind. Möglicherweise gibt es einige USB-Geschwindigkeitseinstellungen und / oder USB-Legacy-Einstellungen, die sich auf Ihre Leistung auswirken können.
Tim Kennedy
Ist das Gerät als NTFS formatiert? Wenn ja, würde ich versuchen, es als FAT32 neu zu formatieren (oder EXT4, wenn Sie es nur unter Linux verwenden möchten).
RobinJ
3
Es scheint ein Problem mit riesigen Seiten in der Speicherverwaltung von Linux zu geben . Es kommt selten vor, klingt aber so, als hätten Sie es beobachtet.
artistoex
@artistoex - Dieser Artikel fasst das Verhalten, das ich erlebt habe, vollständig zusammen. Schade, dass es keine konkrete Lösung gibt. Weiß jemand, ob dies in späteren Versionen behoben ist? Zeit für ein Upgrade.
John
Kompilieren Sie Ihren Kernel, wie im Artikel angegeben, mit deaktivierter Funktion für transparente große Seiten.
artistoex

Antworten:

7

Es scheint ein Problem mit riesigen Seiten in der Linux-Speicherverwaltung zu geben . Es kommt selten vor, klingt aber so, als hätten Sie es beobachtet.

Ursache

Dies ist meine stark vereinfachte Darstellung dessen, was laut Artikel passiert.

Wenn Sie Pech haben, bleibt ein Prozess in dem Moment hängen, in dem er einen Speicherzugriff ausgibt. Wenn transparente große Seiten aktiviert sind, kann ein Speicherzugriff eine synchrone Komprimierung (Defragmentierung des Hauptspeichers) auslösen, was bedeutet, dass der Speicherzugriff nicht vor der Komprimierung beendet wird. Das an sich ist keine schlechte Sache. Wenn jedoch gleichzeitig ein Rückschreiben (z. B. gepufferter Daten auf USB) stattfindet, wird die Komprimierung wahrscheinlich zum Stillstand kommen und darauf warten, dass das Zurückschreiben abgeschlossen ist.

Daher kann jeder Prozess darauf warten, dass ein langsames Gerät das Schreiben gepufferter Daten beendet.

Heilen

Ein Upgrade des Hauptspeichers wie beim OP kann das Problem verzögern. Aber für diejenigen, die dies nicht für eine Option halten, gibt es zwei offensichtliche Problemumgehungen. In beiden Fällen wird der Kernel neu kompiliert:

artistoex
quelle
2

Dies klingt ähnlich wie meine Frage hier (wo eine Antwort mich auf diese Frage hinwies):

/programming/10105203/how-can-i-limit-the-cache-used-by-copying-so-there-is-still-memory-available-for

Aber die Theorie ist völlig anders und die Lösung, die ich verwendet habe, hat nichts mit Ihrer zu tun, funktioniert aber perfekt.

Ich habe rsync verwendet, also musste ich nur die Option --drop-cache verwenden. (was die Kopie als Nebeneffekt etwas langsamer macht)

Peter
quelle
0

Der einzige Trick, den ich gefunden habe, der wirklich funktioniert: Gnome, Nautilus kopiert Dateien auf USB-Stopps bei 100% oder in der Nähe

Wenn Sie einige Power-User-Tricks ausprobieren möchten, können Sie die Größe des von Linux verwendeten Puffers reduzieren, indem Sie / proc / sys / vm / dirty_bytes auf etwa 15728640 (15 MB) setzen. Dies bedeutet, dass die Anwendung nicht mehr als 15 MB vor ihrem tatsächlichen Fortschritt erhalten kann.

Ein Nebeneffekt ist, dass Ihr Computer mit dieser Einstellung möglicherweise einen geringeren Durchsatz beim Schreiben von Daten hat. Insgesamt finde ich es jedoch hilfreich zu sehen, dass ein Programm lange läuft, während es viele Daten schreibt, im Gegensatz zu der Verwirrung, a zu haben Das Programm scheint mit seiner Arbeit fertig zu sein, aber das System bleibt stark zurück, da der Kernel die eigentliche Arbeit erledigt. Wenn Sie dirty_bytes auf einen relativ kleinen Wert einstellen, kann dies auch dazu beitragen, dass Ihr System nicht mehr reagiert, wenn Sie nur noch wenig freien Speicher haben und ein Programm ausführen, das plötzlich viele Daten schreibt.

Aber nicht zu klein einstellen! Ich verwende 15 MB als grobe Schätzung, dass der Kernel den Puffer in 1/4 Sekunde oder weniger auf eine normale Festplatte leeren kann. Es hält mein System davon ab, sich "träge" zu fühlen.

Volunteer4F
quelle