Wie verhindere ich, dass Ubuntu aufgrund von Prozessen, die in den "Festplattenschlaf" gehen, hängen bleibt?

7543
joeforker

Ich verwende Ubuntu 9.04 64 Bit auf einer AMD. Es bleibt regelmäßig für einige Minuten hängen, wenn ein Teil der CPU-Auslastung (%) der Prozesse in den Festplatten-Ruhezustand wechselt. Während dieser Zeit kann ich keine neuen Programme mehr starten und die meisten Programme auf dem Desktop reagieren nicht mehr.

Ich möchte lieber, dass es nicht hängen blieb und meine Bewerbungen zuverlässig reagierten. Warum passiert das und wie kann ich damit aufhören?

5
Ich habe dieses Verhalten bei Prozessen gesehen, die auf gemountete Dateisysteme, hauptsächlich NFS, zugreifen. Haben Sie NFS-, Samba- und USB-Anschlüsse auf dem System? nagul vor 14 Jahren 0
Ich habe ein paar CIFS-Mounts und eine Webdav-Partition. Könnte das Problem sein. Kann ich diese entfernen, wenn das System nicht verfügbar ist? joeforker vor 14 Jahren 0
Das Problem ist, dass sie zeitweise nicht verfügbar sind, entweder aufgrund von Netzwerklatenz oder Treiberproblemen. Nach meiner Erfahrung in CIFS neigen NFS zu einem solchen Verhalten. Ist eine Lösung akzeptabel, wenn diese standardmäßig nicht bereitgestellt werden und Sie bei Bedarf bereitgestellt werden? nagul vor 14 Jahren 0

1 Antwort auf die Frage

7
nagul

Ein Prozess im Festplatten-Ruhezustand oder im unterbrechungsfreien Ruhezustand wartet in der Regel auf einige E / A-Vorgänge, bis der Vorgang abgeschlossen ist. In diesem Zustand kann es nicht durch Signale geweckt werden. Daher kann der Prozess nicht mit dem SIGKILL-Signal beendet werden.

Mein begrenztes Verständnis für das, was passiert, ist folgendes: Der CPU-Scheduler im Kernel verwaltet eine Run-Warteschlange, die die Liste der Prozesse darstellt, die zur Ausführung bereit sind. Wenn ein Prozess die CPU bekommt, dann auch

  1. Verwendet seine Zeitscheibe vollständig und wird herausgeplant, oder
  2. Es muss auf die Antwort einer Operation warten, in der Regel E / A, und Anforderungen, die in die Warteschlange übertragen werden sollen, und auf das Ereignis warten.

Prozesse, die aufgrund von # 2 auslaufen, zeigen dem Scheduler außerdem an, ob sie unterbrochen werden sollen oder nicht, während sie auf das Ereignis warten. Wenn sie den ordnungsgemäßen Betrieb nicht fortsetzen können, wenn sie durch ein Signal unterbrochen werden (normalerweise Gerätetreiber), zeigen sie an, dass sie nur durch das Ereignis geweckt werden sollten. Diese befinden sich im unterbrechungsfreien Schlafzustand und werden in die Warteschlange verschoben.

Wenn das System aufgrund des Festplattenschlafes regelmäßig eingefroren wird, kann dies eine der folgenden Ursachen haben

  • Treiber für fehlerhafte Geräte
  • Fehler an Ihrer Hardware (Laufwerk?)
  • Bereitgestellte Dateisysteme, die langsam reagieren.

Ich habe dies immer wieder mit NFS-Dateisystemen gesehen. Wenn aus irgendeinem Grund die Antwort des Geräts verloren geht, befindet sich der Prozess im Ruhezustand, wodurch es nahezu unmöglich ist, das Mount / Gerät bis zu einem Neustart zu verwenden.

Wenn Sie der Meinung sind, dass der Zugriff auf Ihre Festplatte zu einem Einfrieren der E / A führt, ist es möglicherweise ratsam, zu überprüfen, ob auf dem Laufwerk fehlerhafte Blöcke oder Sektoren vorhanden sind.