Mein Desktop reagiert normalerweise sehr schnell, auch unter hoher Last. Wenn ich jedoch Dateien auf ein USB-Laufwerk kopiere, wird es nach einiger Zeit immer gesperrt. Mit "einsperren" meine ich:
- Das Verschieben des Fokus von einem Fenster in ein anderes kann 10 bis 20 Sekunden dauern
- Das Wechseln von Desktops kann 10 bis 20 Sekunden dauern
- Videos werden nicht mehr aktualisiert (in YouTube wird das Audio weiter abgespielt, nur das Video friert ein)
Die Systemlast ist in diesem Fall nicht außergewöhnlich hoch. Manchmal sehe ich in xosview viel Weiß, was darauf hinweist, dass der Kernel irgendwo beschäftigt ist.
Auf den ersten Blick sieht es so aus, als würde das Kopieren von Dateien auf das USB-Laufwerk das Compiz irgendwie stören, aber ich kann mir nicht vorstellen, wie die Verbindung aussehen könnte.
Hier ist die Ausgabe von htop
:
Hier ist die Ausgabe iostat -c -z -t -x -d 1
während eines 2-minütigen Hängens:
19.07.2012 20:38:22
avg-cpu: %user %nice %system %iowait %steal %idle
1,27 0,00 0,38 37,52 0,00 60,84
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdg 0,00 2,00 0,00 216,00 0,00 109248,00 1011,56 247,75 677,69 0,00 677,69 4,63 100,00
Wie Sie sehen, ist nur die externe Festplatte aktiv. Hier ist das vollständige Protokoll: http://pastebin.com/YNWTAkh4
Der Hang begann um 20:38:01 und endete um 20:40:19.
Software-Informationen:
- openSUSE 12.1
- KDE 4.7.x.
- Dateisysteme: reiserfs und btrfs auf meiner internen Festplatte, btrfs auf dem USB-Laufwerk
sync
zu montieren, um festzustellen, welche Auswirkungen (falls vorhanden) dies hat?grep name /proc/cpuinfo
bitte Ihrer Frage hinzu.cp
über die Befehlszeile, mögliche Delfinfehler auszuschließen.rsync
von der Kommandozeile.iostat -c -z -d 1
Antworten:
Meine erste Vermutung war, dass
btrfs
die E / A-Prozesse dieses Dateisystems manchmal übernehmen. Aber es würde nicht erklären, warum X abstürzt.Wenn ich mir die Interrupts ansehe, sehe ich Folgendes:
Nun, duh. Der USB-Treiber verwendet denselben IRQ wie die Grafikkarte und ist der erste in der Kette. Wenn es abstürzt (weil das Dateisystem etwas Teuereres tut), verhungert die Grafikkarte (und auch das Netzwerk).
quelle
Ich hatte ähnliche Probleme mit dem Linux-3.1-Kernel von openSUSE 12.1 gesehen und festgestellt, dass das Deaktivieren transparenter großer Seiten hilfreich war:
Das zugrunde liegende Problem besteht darin, dass der Kernel, wenn eine Anwendung 4 MB oder mehr zuweist, versucht, ihm eine große Seite zu geben, für die er einen ganzen zusammenhängenden 4 MB RAM benötigt. Wenn nun viele schmutzige Seiten vorhanden sind, die noch auf ein langsames USB-Gerät geschrieben werden müssen, wartet es darauf, dass diese E / A beendet wird, bevor mit der Speicherzuweisung fortgefahren wird.
quelle
Wie bereits erwähnt, hat dies wahrscheinlich mit dem Setup der Kernel-Riesenseiten zu tun. Ich kenne mehrere Leute mit diesem Problem. Sie können verschiedene Dokumentationen dazu im Web finden, z
Ich habe das Problem in meinem Setup vollständig behoben, indem ich Folgendes getan habe. Beachten Sie, YMMV, möglicherweise sind nicht alle der folgenden Korrekturen erforderlich, und möglicherweise reichen sie nicht aus. Ich habe vielleicht etwas vergessen, um ehrlich zu sein. Jedenfalls ist das mein Setup und es funktioniert.
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
quelle
Kabel wechseln. Entfernen Sie das Oxid vom USB-Anschluss / den Kabeln.
quelle