GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum friert der PC ein, während ich eine Datei auf einen Pendrive kopiere?

Ich habe hier eine wirklich seltsame Situation. Mein PC funktioniert zumindest in den meisten Fällen gut, aber es gibt eine Sache, mit der ich nicht umgehen kann. Wenn ich versuche, eine Datei von meinem USB-Stick zu kopieren, ist alles in Ordnung – ich habe 16-19 M/s, es funktioniert ziemlich gut. Aber wenn ich versuche, etwas auf denselben USB-Stick zu kopieren, friert mein PC ein. Der Mauszeiger bewegt sich für ein oder zwei Sekunden nicht mehr, dann bewegt er sich ein wenig und hält wieder an. Wenn zum Beispiel in Amarok etwas abgespielt wird, wirkt der Sound wie ein Maschinengewehr. Die Geschwindigkeit springt von 500 K/s auf 15 M/s, durchschnittlich 8 M/s. Dies tritt nur auf, wenn ich etwas auf einen USB-Stick kopiere. Wenn der Kopiervorgang abgeschlossen ist, ist alles wieder normal.

Ich habe alles versucht – einen anderen USB-Stick, einen anderen USB-Anschluss auf der Vorderseite oder die Anschlüsse von hinten, ich habe sogar die USB-Pins auf dem Motherboard (Vorderseite) geändert, aber egal, wo ich meinen USB-Stick hinstecke, es ist immer dasselbe. Ich habe ein anderes Dateisystem ausprobiert — fat32 , ext4 . Ich habe kein Problem mit dem Gerät unter Windows, auf meinem Laptop. Es muss mein PC oder etwas in meinem System sein. Ich habe keine Ahnung, wonach ich suchen soll. Ich verwende Debian-Tests mit eigenständiger Openbox. Mein PC ist ziemlich alt – Pentium D 3 GHz, 1 GB RAM, 1,5 TB WD Green Disk. Wenn Sie etwas haben, das mir bei der Lösung dieses Problems helfen könnte, würde ich mich freuen, das zu hören.

Ich weiß nicht, welche weiteren Informationen ich bereitstellen soll, aber wenn Sie etwas benötigen, fragen Sie einfach, ich werde diesen Beitrag so schnell wie möglich aktualisieren.

Ich habe versucht, dieses Problem auf der Live-CD von Ubuntu 13.04 zu reproduzieren. Ich habe meine verschlüsselte Partition + verschlüsselten Swap gemountet und meinen USB-Stick an einen USB-Anschluss angeschlossen. Als nächstes habe ich versucht, einige Apps zu starten, und jetzt habe ich ~ 820 MiB im RAM und ungefähr 400 MiB im SWAP. Es gibt kein Problem mit dem Kopieren, überhaupt kein Einfrieren, alles ist so, wie es sein sollte. Es sieht also so aus, als wäre es ein Fehler des Systems, aber wo genau? Was würde ein so seltsames Verhalten verursachen?

Akzeptierte Antwort:

Verwenden Sie eine 64-Bit-Version von Linux mit viel Arbeitsspeicher? In diesem Fall könnte das Problem darin bestehen, dass Linux bei großen Schreibvorgängen auf langsamen Geräten wie zum Beispiel
SD-Karten oder USB-Sticks minutenlang blockieren kann. Es ist ein bekannter Fehler, der in neueren Kerneln behoben werden sollte.

Siehe http://lwn.net/Articles/572911/

Problemumgehung:als Hauptproblem:

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

Ich habe es zu meiner /etc/rc.local hinzugefügt Datei in meinen 64-Bit-Rechnern.

Verwandte:Php:chown – Ändert den Dateibesitzer

TANSTAAFL; Diese Änderung kann (und wird wahrscheinlich) Ihren Durchsatz zu diesen Geräten reduzieren – es ist ein Kompromiss zwischen Latenz und Geschwindigkeit. Um zum vorherigen Verhalten zurückzukehren, können Sie

echo 0 > /proc/sys/vm/dirty_background_bytes
echo 0 > /proc/sys/vm/dirty_bytes

…das sind die Standardwerte, was bedeutet, dass das Writeback-Verhalten durch die Parameter dirty_ratio gesteuert wird und dirty_background_ratio .

Hinweis für die Nicht-Linux-Experten:die Dateien in /proc sind Pseudodateien – nur Kommunikationskanäle zwischen dem Kernel und dem Benutzerbereich. Verwenden Sie niemals einen Editor, um sie zu ändern oder anzusehen; erhalten Sie stattdessen einen Shell-Prompt – zum Beispiel mit sudo -i (Ubuntu-Varianten) oder su root und verwenden Sie echo und cat ).

Aktualisierung 18.04.2016 es scheint, dass das Problem immer noch da ist. Sie können es sich auf LWN.net in diesem Artikel über Writeback-Warteschlangen ansehen.


Linux
  1. Linux – Warum ist kein Rootfs-Dateisystem auf dem System vorhanden?

  2. Warum enthält die Bash-Übersetzungsdatei nicht alle Fehlertexte?

  3. Warum stimmen Ls und Hexdump nicht über die Dateigröße überein?

  4. Wird der Vorgang beim Kopieren einer .mkv-Datei in zwei Teile geteilt?

  5. Warum liefert xargs -L das richtige Format und xargs -n nicht?

So schließen Sie bestimmte Dateierweiterungen beim rekursiven Kopieren von Dateien aus

Warum müssen wir den Dateinamen zweimal in Exec-Funktionen übergeben?

Warum wird der Dateideskriptor nur einmal geöffnet und gelesen?

On-the-Fly-Ausgabeumleitung, Anzeige der Dateiumleitungsausgabe, während das Programm noch läuft

Wo ist die Header-Datei <conio.h> unter Linux? Warum kann ich <conio.h> nicht finden?

Kopieren einer Datei nur, wenn sie neuer als das Ziel ist