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